我正在处理一个使用 JNLP 文件的项目。 其中指定了如下资源:
[代码]
<resources>
<jar href="noterik-apu.jar" main="true" download="eager"/>
<jar href="springfield-tools.jar" download="eager"/>
<jar href="commons-httpclient-3.1.jar" />
<jar href="commons-cli-1.2.jar" />
<jar href="org.apache.commons.codec.jar" />
<jar href="org.apache.commons.httpclient.jar" />
<jar href="org.apache.commons.logging.jar" />
<jar href="swing-worker-1.1.jar" />
<jar href="log4j-1.2.16.jar" />
<jar href="dom4j-1.6.1.jar" />
<jar href="jaxen-1.1.1.jar" />
<j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
</resources>
[/代码]
Ant 构建文件在构建.jar中不包含这些 JAR 文件。 如何在 CLI 中添加这些 jar,以便它不会给我"线程"main"java.lang.NoClassDefFoundError:" ?我试过"-cp file1.jar:file2.jar:etc.jar",但我在互联网上读到你不能将 -cp 与 -jar 一起使用。我怎样才能让它工作?
提前感谢!
不应将 jar 文件嵌入到另一个 jar 文件中。这只有在使用特殊的类加载器时才有效。启动应用时使用-cp
选项:
java -cp lib*:.myApp.jar com.foo.bar.MyApp
或者按照此页面上的说明将 jar 文件的相对路径包含在 myApp 的清单中.jar并使用 java -jar myApp.jar
启动应用。
如果您在编译时使用 linux
$ javac -cp myjar.jar Hello.java
并且在运行使用时,需要包含带点的当前目录
$ java -cp myjar.jar:. Hello