Java Mac appbundle 资源路径

标签 java macos ant java-7

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

例如,在我使用的 build.xml ant 任务中(我的 native 库被复制到应用程序包内的 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 使用与 jdk6 随附的 Apple 的 Jar Bundler 不同的 plist 语法,例如没有要添加 SplashFile 的“Java”字典。

最佳答案

根据appbundler task documentation您正在寻找的魔法变量是 $APP_ROOT :

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

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

关于Java Mac appbundle 资源路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13624129/

相关文章:

java - 我的序列化机制有什么问题?

java - 带有 spring boot 错误自动配置的 H2 嵌入式数据库

java - 作为 Ant 目标运行 JUnit 测试

java - Ant 构建脚本中的 JUnit 尝试删除 .svn 目录但失败

ant - 如何从生成的 JAXB 文件中删除命名空间?

java - 我可以通过单击java中第一帧中的按钮将记录插入到第二帧中吗? ( Swing )

java - 从 Oracle ADF 中的 Java 代码中的 URL 获取参数

macos - Postgresql macports 无法连接问题

macos - OSX 将文本(不是文件)拖放到应用程序停靠图标

macos - Sprite 套件 OS X : SKTexture size property is incorrect