gpt4 book ai didi

java - 从需要 Java 1.8 的 jar 创建 bundle 应用程序

转载 作者:太空宇宙 更新时间:2023-11-04 06:28:51 25 4
gpt4 key购买 nike

我正在努力交付 Java 应用程序。我用 Eclupse Luna 编写了它,并成功导出了一个包含外部文件(图像)的 jar。这样,现在我从 Eclipse 中获得了一个 ant 构建 xml 文件,我可以运行 ant -buildfile projectANT.xml,并且只有在复制了包含所有外部图像的数据文件后,我才可以双击 jar 文件来执行它。

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

我尝试从现有应用程序中获取 bundle 并将我的 jar 放入其中(包含所有文件、jdk 和其他所有内容),但我得到 LSOpenURLsWithRole() failed with error -10810

然后我尝试使用 JarBundler 2.3.1 来处理 ant lib 文件夹内的 jar 打包程序,但我没有设法创建正确的 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中只出现任何内容,并且创建应用程序按钮保持灰色,我无法单击它。

我还尝试从脚本创建一个包,在该脚本中调用 java project.jar 遵循此 blog post但似乎太旧了,无法在我的 Mac OS/X (10.8.5) 上运行。

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

最佳答案

我认为您无法修改现有 Mac Bundle 的内容,直觉告诉我有安全功能可以防止这种情况,使用恶意代码修改现有 bundle 太容易了。您需要重新开始您的 ant 任务并制作一个新的 Mac Bundle。点击此链接“Build Mac OSX Java Application ”,您会发现它包含一个很棒的 ant 任务示例,并写下如何使用 ant 任务来完成此任务。

这是他文章中的示例

 <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>

确保将包设置为使用 java 1.8 运行时打开 https://apple.stackexchange.com/a/130692

关于java - 从需要 Java 1.8 的 jar 创建 bundle 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26410290/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com