从需要Java 1.8的jar创建捆绑应用程序
我正在努力交付java应用程序。我用EclupseLuna编写了它,并设法导出了一个包含外部文件(图像)的jar。现在我有了一个来自Eclipse的ant build xml文件,我可以运行从需要Java 1.8的jar创建捆绑应用程序,java,macos,ant,jar,bundle,Java,Macos,Ant,Jar,Bundle,我正在努力交付java应用程序。我用EclupseLuna编写了它,并设法导出了一个包含外部文件(图像)的jar。现在我有了一个来自Eclipse的ant build xml文件,我可以运行ant-buildfile projectANT.xml,只有在复制了包含所有外部图像的数据文件之后,我才能双击jar文件来执行它 现在我想创建一个Mac捆绑包,这样一个带有图标的project.app就可以添加到Dock中,并且可以包含java jdk(无需java安装)。我正在使用Java1.8 我试图从
ant-buildfile projectANT.xml
,只有在复制了包含所有外部图像的数据文件之后,我才能双击jar文件来执行它
现在我想创建一个Mac捆绑包,这样一个带有图标的project.app就可以添加到Dock中,并且可以包含java jdk(无需java安装)。我正在使用Java1.8
我试图从现有应用程序中获取一个捆绑包,并将我的jar放入其中(包括所有文件、jdk和其他所有内容),但我得到的LSOpenURLsWithRole()失败,错误为-10810
然后我尝试使用JarBundler 2.3.1在ant lib文件夹中创建JarBundler,但我没有创建正确的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.
问题:无法创建任务或类型绑定器
原因:名称未定义。
措施:检查拼写。
操作:检查是否已声明任何自定义任务/类型。
措施:检查是否发生了任何/声明。
然后,我尝试从apple development tools 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捆绑包的内容,直觉告诉我,有安全功能可以防止这种情况,用恶意代码修改现有捆绑包太容易了。您需要开始返回您的ant任务并制作一个新的Mac包。 点击这个链接“”,你会发现它包含了一个奇妙的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>
确保您将捆绑包设置为使用Java1.8运行时打开
这意味着什么?这似乎与我以前遇到的问题相同..如果打开命令行并键入“java-version”“该命令打印出该终端中的java版本。你能更详细地描述一下你在哪里看到这个问题吗?@kayakMike Hi我有类似的问题,请看一看我的问题谢谢嗨,我也有同样的问题。你能分享你的解决方案吗?你找到什么了吗?我的问题是谢谢LSOpenURLsWithRole()失败,文件/Users/alberto/Code/woodskin/build/appName.app出现错误-10810。
又一次。10810是什么意思?我在Google中找不到太多东西,看起来你就快到了。我想你可能需要将该软件包与java运行时关联起来;但请确保你的mac电脑上安装了java 1.8。java-version>java版本“1.8.0_11”