通过批处理+设置库路径执行JAR文件

时间:2012-12-14 08:51:33

标签: java ant batch-file path

我有一个需要执行的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 build来生成jar。我可以做的所有设置都是:

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

有没有办法设置库路径?

2 个答案:

答案 0 :(得分:0)

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

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

其他选项是将您的appliaction打包为zip存档并要求用户提取它。您应支持的每个操作系统都应包含入门脚本。这样,您可以包含在依赖于OS的calsspath本机jar中

答案 1 :(得分:0)

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

请参阅:

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

start java -jar myjar.jar