0

我有一个需要执行的jar文件和一个需要在执行前设置的库路径(路径很重要):

// works but without library path being set
start bin/myJar.jar

// should work but doesn't because OS path knows no java paths
// error message like: "java" could not be found
start java -Djava.library.path=bin\native -jar bin\myJar.jar

我认为 Oracle 在安装他们的产品方面做得很差,因为总是需要手动操作。我不能指望我的用户自己设置路径变量。那么有没有办法通过批处理更新路径变量(最好是临时执行这个jar)?

我还使用 ant 构建来生成 jars。我可以做的所有设置是:

// ...
<manifest>
    <attribute name="Class-Path" value="another.jar another2.jar " />
    <attribute name="Main-Class" value="myPackage.MyClass" />
</manifest>
// ...

有没有办法设置库路径?

4

2 回答 2

0

您可以在同一个文件夹中拥有所有需要的 jar。然后默认情况下 claspath 设置为当前目录。

其他选项是让您的应用程序安装程序复制 jar 文件,以便 Java 可以在默认位置找到它:jre/lib/ext

其他选择是将您的应用程序打包为 zip 存档并要求用户提取它。您支持的每个操作系统都应该包含启动脚本。这样您就可以在依赖于操作系统的 calsspath 本地 jar 中包含

于 2012-12-14T09:01:45.667 回答
0

正如您所推测的,最好的方法是通过在 jar 的清单中指定主类和类路径来创建一个可执行的 jar。

看:

使用manifestclasspath任务意味着您可以将 jar 和它的依赖库一起发送。然后,您的批处理脚本可以是一个简单的调用,如下所示:

start java -jar myjar.jar
于 2012-12-16T20:27:11.303 回答