Java Mac appbundle资源路径

时间:2012-11-29 10:52:09

标签: java macos ant java-7

使用来自oracle(http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/packagingAppsForMac.html)的appbundler ant任务我可以使用捆绑的JRE7创建一个可用的Mac应用程序但加载一些资源(如本机库)失败,因为Info.plist中的路径无效。

在我使用的build.xml ant任务中(我的本机库被复制到app-bundle内的Contents / Java文件夹):

a) <option value="-Djava.library.path=Contents/Java/" />
b) <option value="-Djava.library.path=$JAVAROOT/" />
c) <option value="-Djava.library.path=$APP_PACKAGE/Contents/Java/" />

所有结果都是UnsatisfiedLinkError。还找不到其他一些资源,如splash-image:

<option value="-splash:Contents/Java/my-splash.png" />

知道如何在这里正确设置JVMOptions的路径吗?

编辑:Java7 appbundler使用与plist相同的语法,例如来自Apple的Jar Bundler,它带有jdk6,例如:没有添加SplashFile的“Java”字典。

1 个答案:

答案 0 :(得分:7)

根据appbundler task documentation,您正在寻找的神奇变量是$APP_ROOT

<option value="-Djava.library.path=$APP_ROOT/Contents/Java/" />

这也适用于<argument value="..."/>(主类的参数,而不是JVM的选项)。