如何通过Java Web Start提供到外部JAR的类路径

时间:2011-08-11 08:34:24

标签: java java-web-start

我正在为控制台应用程序创建一个小接口,因此我正在执行控制台应用程序,然后通过命令行运行命令。

我的问题是我正在执行的JAR需要提供一个JAR库的路径。但是我不知道如何正确传递这些信息。根据我在JNLP File Syntax中找到的信息,我应该将所有外部JAR添加到JNLP文件中的JAR路径。

此文件如下所示:

<resources>
    <j2se version="1.5+"/>
    <jar href="uToolGUI.jar" main="true"/>
    <jar href="uTool.jar"/>
    <jar href="jpcap.jar"/>
</resources>

我正在执行的这行是:

java.exe -cp lib\jpcap.jar;. -jar D:\jarCreateLib\uTool.jar gen

所以我想这个问题归结为 - 我如何以某种方式引用我想要的库,以便Web Start允许我这样做。

这通过Eclipse执行时就像一个魅力。如果我必须通过java -jar...运行它,我必须添加-Djnlp.java.library.path=lib,但是当我尝试通过Java Web Start执行它时,这没有任何区别。

提前感谢所有回复和回复。

2 个答案:

答案 0 :(得分:2)

命令java -jar …使用清单中找到的Class-Path,而不是-cp选项中指定的路径。根据建议here,您需要一个清单条目,例如:

Class-Path: lib/uToolGUI.jar lib/uTool.jar lib/jpcap.jar

JNLP File Syntax中所述,如果可以从main-class清单条目中找到JNLP文件中指定的第一个JAR文件,则可以省略JNLP文件中的Main-Class属性。 JAR文件。

答案 1 :(得分:1)

JNLP片段假定Jars位于相同(未命名)目录(代码库)中,而命令行调用指向lib目录中的一个,&amp; jarCreateLib中的另一个。

我强烈建议您使用JaNeLA检查JNLP。它检查的一件事是JNLP中声明的资源相对于指定的代码库是可用的。