4

使用来自 oracle 的 appbundler ant 任务(http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/packagingAppsForMac.html)我能够创建一个带有捆绑 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 的 Jdk6 附带的 Jar Bundler 的语法不同,例如没有“Java”字典来添加 SplashFile。

4

1 回答 1

7

根据appbundle 任务文档,您正在寻找的魔法变量是$APP_ROOT

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

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

于 2012-11-29T11:12:47.657 回答