0

我正在开发一个使用 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 .. 我怎样才能让它工作?

提前致谢!

4

2 回答 2

1

您不应该将 jar 文件嵌入到另一个 jar 文件中。只有使用特殊的类加载器才能起作用。-cp启动应用程序时使用该选项:

java -cp lib\*:.\myApp.jar com.foo.bar.MyApp

或者按照此页面上的说明将 jar 文件的相对路径包含到 myApp.jar 的清单中,然后使用java -jar myApp.jar.

于 2012-05-31T10:48:14.943 回答
0

如果您在编译时使用 linux,请使用

$ javac -cp myjar.jar Hello.java

并且在运行使用时,需要用点包含当前目录

$ java -cp myjar.jar:. Hello
于 2012-05-31T10:55:07.070 回答