我是 gradle 新手。
我有 Java 项目,具有 maven 依赖项和本地 Java 归档依赖项。我想构建一个包含我的代码和所有依赖项的独立 jar。
我试过了
dependencies {
runtime files(...)
runtime group ...
}
Run Code Online (Sandbox Code Playgroud)
在我稍后运行程序时使库可用,但它不起作用,它们在运行时不可用......
我也试过这个:
from("$projectDir") {
include '../lib/**';
}
Run Code Online (Sandbox Code Playgroud)
但没有成功......当我运行它时,java程序找不到依赖项(NoClassDefFoundError)。
每次我构建我的 maven 项目并运行应用程序时,它都会说
[INFO]
[INFO] Jan 07, 2015 5:23:37 PM com.google.apphosting.utils.jetty.JettyLogger warn
[INFO] WARNING: Failed to read file: C:\app\target\app-1.0\WEB-INF\lib\datanucleus-jpa-1.1.5.jar
[INFO] java.util.zip.ZipException: error in opening zip file
[INFO] at java.util.zip.ZipFile.open(Native Method)
[INFO] at java.util.zip.ZipFile.<init>(ZipFile.java:215)
[INFO] at java.util.zip.ZipFile.<init>(ZipFile.java:145)
[INFO] at java.util.jar.JarFile.<init>(JarFile.java:153)
[INFO] at java.util.jar.JarFile.<init>(JarFile.java:117)
[INFO] at org.mortbay.jetty.webapp.TagLibConfiguration.configureWebApp(TagLibConfiguration.java:174)
[INFO] at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1247)
[INFO] at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
[INFO] at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
[INFO] at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
[INFO] at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
[INFO] at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
[INFO] at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
[INFO] at org.mortbay.jetty.Server.doStart(Server.java:224)
[INFO] at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
[INFO] at com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:255)
[INFO] at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:288)
[INFO] at …Run Code Online (Sandbox Code Playgroud) 有很多文件夹可以让您找到正在运行的 jar 所在的文件夹,但是我如何获取正在运行的 jar 呢?例如,如果 foo.jar 在 C:/FOO/foo.jar 中,那么我将如何获得路径 C:/FOO/foo.jar,而不是 C:/FOO。另外,我不知道 A:如果 jar 被移动到不同的文件夹,B:如果我的 jar 被重命名,以及 C:如果在我的同一个文件夹中还有其他 jar。我想获取当前正在运行的 jar 的 File 对象,然后我将使用(以某种方式)用我的程序的新版本替换该 jar。谁能帮我这个?谢谢!编辑:等一下,是否可以在找到目录后扫描它以查找 jar 文件,并在每个 jar 文件中检查我的 jar 中的某个类/其他文件?
我必须.jar class loader在学校的作业中写一个。我在另一个问题中找到了这段代码,但不知道为什么它不起作用。
我已将路径设置为绝对路径,以确保它引用正确的文件。
System.out.println("Loading game: " + name);
URL url = new URL("file:///home/<name>/Documents/School/thema2.3/batavus/batavus/gamemodules/TicTacToe.jar");
ClassLoader loader = new URLClassLoader(new URL[]{url});
Class<?> clazz = loader.loadClass("spatboard.game." + name);
Class<? extends Game> boardClass = clazz.asSubclass(Game.class);
Constructor<? extends Game> ctor = boardClass.getConstructor();
return ctor.newInstance(board);
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
Loading game: TicTacToe
java.lang.ClassNotFoundException: spatboard.game.TicTacToe
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at spatbord.loader.GameLoader.loadModule(GameLoader.java:29)
at spatbord.model.Board.<init>(Board.java:51)
at spatbord.controller.GameController.onMatchStarted(GameController.java:157)
at spatbord.connection.Server.matchStarted(Server.java:428)
at spatbord.connection.Server.handleInput(Server.java:346)
at spatbord.connection.Server.run(Server.java:145)
at java.lang.Thread.run(Thread.java:745)
Run Code Online (Sandbox Code Playgroud)
中的包声明TicTacToe是package spatbord.game;
罐子的内容是:
spatbord
-> game
-> TicTacToe.class
Run Code Online (Sandbox Code Playgroud)
我在这里看不到什么?
这是我用 Scala 编写的代码。
object Main extends App {
println("Hello World from Scala!")
}
Run Code Online (Sandbox Code Playgroud)
这是我的build.sbt。
name := "hello-world"
version := "1.0"
scalaVersion := "2.11.5"
mainClass := Some("Main")
Run Code Online (Sandbox Code Playgroud)
这是我运行以创建 jar 文件的命令。
sbt package
Run Code Online (Sandbox Code Playgroud)
我的问题是在target/scala-2.11创建了一个名为hello-world_2.11-1.0.jar的 jar 文件。但我无法运行该文件。它给了我一个错误,说NoClassDefFoundError。
我究竟做错了什么?
我正在寻找 org.eclipse.paho.client.mqttv3-1.0.2.jar。目前我只能通过 pom.xml 和 maven 获取库。这很好,但是我需要放置 JAR 的系统不能使用 maven/eclipse repo。我查看了目录,但在其中找不到 JAR。
有什么地方可以直接下载 JAR 吗?
答:https : //repo.eclipse.org/content/repositories/paho/org/eclipse/paho/org.eclipse.paho.client.mqttv3/1.0.2/org.eclipse.paho.client.mqttv3-1.0。 2.jar
<repositories>
<repository>
<id>Eclipse Paho Repo</id>
<url>https://repo.eclipse.org/content/repositories/paho-releases/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.eclipse.paho</groupId>
<artifactId>org.eclipse.paho.client.mqttv3</artifactId>
<version>1.0.2</version>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud) 我们创建jar了我们项目的文件。Jar文件名是stock.jar,在dist文件夹中:lib文件夹,一个stock.jar,stock.sqlite。
现在我们要创建.exe数据库和lib文件夹 jars。
我正在抓取一个需要身份验证的网站。我正在使用 node.js 并请求一个 jar 来存储 cookie。
我的问题:我有两条路由 /login 和 /api,当我登录网站时,我将 cookie 存储在登录路由/文件中,然后我如何在 /api 中使用相同的 cookie?
login.js:
var request = require('request');
var jar = request.jar();
var payload = querystring.stringify({
username: username,
password: password,
request_token: token,
});
var options = {
..
..
method: 'POST',
body: payload,
jar: jar <---------- Valid cookie
};
request(options, function (error, response, body) {
// Code here
});
--------------------------------
api.js:
var request = require('request');
var jar = request.jar();
var options = {
method: "get",
url: baseUrl,
jar: …Run Code Online (Sandbox Code Playgroud) 'main' 是我所有类的包,在其中一个类中,我试图加载 background.png 文件。在我的 Eclipse 项目中,我将资源放在“res/”文件夹下,我将其添加到构建路径中以包含它。当我尝试使用
新文件(“背景.png”);
它找不到文件。当我使用
MyClass.class.getClass().getClassLoader().getResource("background.png");
它仍然找不到文件。
我正在开发这个 Java 应用程序,它需要访问“JCE Unlimited Strength”文件,并且我确实安装了它们,并且在我构建解决方案(在 Intellij 中)时它可以正常工作但是当我jar输出时,由于某种原因它给出我这个烦人的错误:
C:\Users\h\whatever\out\artifacts\Accepter_jar>java -cp Accepter.jar Main
org.apache.poi.EncryptedDocumentException: Export Restrictions in place - please install JCE Unlimited Strength Jurisdic
tion Policy files
at org.apache.poi.poifs.crypt.CryptoFunctions.getCipher(CryptoFunctions.java:208)
at org.apache.poi.poifs.crypt.CryptoFunctions.getCipher(CryptoFunctions.java:182)
at org.apache.poi.poifs.crypt.agile.AgileDecryptor.hashInput(AgileDecryptor.java:269)
at org.apache.poi.poifs.crypt.agile.AgileDecryptor.verifyPassword(AgileDecryptor.java:116)
at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:95)
at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:282)
at ExcelJob.loadExcelSheet(ExcelJob.java:22)
at Main.main(Main.java:17)
Run Code Online (Sandbox Code Playgroud)
知道有什么问题吗?