使用来自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”字典。
答案 0 :(得分:7)
根据appbundler task documentation,您正在寻找的神奇变量是$APP_ROOT
:
<option value="-Djava.library.path=$APP_ROOT/Contents/Java/" />
这也适用于<argument value="..."/>
(主类的参数,而不是JVM的选项)。