从一个需要Java 1.8的jar中创建一个捆绑应用程序



我正在努力交付java应用程序。我用Eclupse Luna写的,我设法导出了一个带有外部文件(图像)的罐子。因此,现在我有了一个来自Eclipse的ant构建xml文件,我可以运行ant -buildfile projectANT.xml,并且只有在复制了带有所有外部图像的数据文件之后,我才能双击jar文件来执行它。

现在我想创建一个Mac捆绑包,这样一个有图标的project.app就可以添加到Dock中,并且可以在其中包含java jdk(不需要安装java)。我使用的是Java 1.8。

我试图从一个现有的应用程序中获得一个捆绑包,并将我的jar放入其中(包括所有文件、jdk和其他所有内容),但我得到了LSOpenURLsWithRole() failed with error -10810

然后我尝试使用JarBundler 2.3.1来处理ant lib文件夹中的jar bundler,但我没能创建一个正确的ant文件,它总是缺少一些未定义的属性,比如:

Problem: failed to create task or type jarbundler
Cause: The name is undefined.
Action: Check the spelling.
Action: Check that any custom tasks/types have been declared.
Action: Check that any <presetdef>/<macrodef> declarations have taken place.

然后我尝试从苹果开发工具14.5.0版本启动Jar Bundler,但它无法加载我的jar文件(没有错误……只是选择了Main class后,Create Application按钮保持灰色,我无法点击它。

我还试图从一个脚本中创建一个捆绑包,在这个脚本中,我在这篇博客文章之后调用java project.jar,但似乎太旧了,在我的Mac OS/X(10.8.5)上不起作用

有什么建议吗?有没有一种简单的方法可以从Eclipse导出的jar中使用Java 1.8创建Java应用程序?

我认为你不能修改现有Mac捆绑包的内容,直觉告诉我有安全功能可以防止这种情况,用恶意代码修改现有捆绑包太容易了。你需要重新开始你的蚂蚁任务,并制作一个新的Mac捆绑包。按照这个链接"构建Mac OSX Java应用程序",你会发现它包含一个奇妙的蚂蚁任务示例,并写下如何使用蚂蚁任务来完成这一任务。

以下是他的文章中的例子

 <target name="create-bundle" depends="clean">
    <bundleapp outputdirectory="${release.dir}"
        name="appName"
        displayname="displayName"
        identifier="com.your.app.Main"
        shortversion="0.1"
        icon="app.icns"
        copyright="Your Name"
        applicationCategory="public.app-category.utilities"
        mainclassname="com/your/app/Main"
    >
        <runtime dir="${env.JAVA_HOME}" />
        <!-- may want to also reference dependent jars using a classpath ref-->
        <classpath file="path/to/your/jar" />
        <option value="-Xdock:icon=Contents/Resources/youricon.icns"/>
        <option value="-Dapple.laf.useScreenMenuBar=true"/>
        <option value="-Dcom.apple.macos.use-file-dialog-packages=true"/>
        <option value="-Dcom.apple.macos.useScreenMenuBar=true"/>
        <option value="-Dapple.awt.application.name=appName"/>
        <option value="-Dcom.apple.smallTabs=true"/>
    </bundleapp>
</target>

确保将捆绑包设置为使用java1.8运行时打开https://apple.stackexchange.com/a/130692

相关内容

  • 没有找到相关文章

最新更新