我知道 JarBundler 不再开发并且不适用于 1.7(链接),并且从同一个站点我发现AppBundler确实从 jar 中生成了正确的.app
文件。
我在这里发现这些jar-apps的内容是一样的,所以我按照人的建议做了,只替换了里面Contents/Java
(或Contents/Resources/Java
旧的Jar Bundler)的jar文件,它就可以工作了。我可以继续使用 AppBundler,但我不希望 Ant 需要额外的依赖项/插件。
无论如何,当我用 Ant 自动化它时 -.app
没有打开。我把它缩小到这个:
.app
由 AppBundler 制作的- 如果我将其复制并粘贴到其他地方,它会启动
- 如果我用 Ant 复制并粘贴它,它不会启动
我什至尝试清除我的应用程序状态缓存之类的事情,但没有运气。同样,奇怪的是,如果我自己复制“源应用程序”,副本就会启动。如果我用 Ant 复制源应用程序(并且我什么都不做)它不会。
这是我的 Ant 片段(.app
只是文件夹 AFAIK)(dist.macapp
是名称.app
):
<copy todir="${dist.dir}" >
<fileset dir="${resources.dir}">
<include name="${dist.macapp}/**" />
</fileset>
</copy>
我想我有两个问题:
- 为什么这不起作用(我想我提供了足够的我尝试过的东西:P)
- 有没有更好的方法来做到这一点(Java Web Start 是不可能的,也许我稍后会研究)