我正在尝试为Mac和Windows创建基于java的GUI。到目前为止,我已经能够创建一个在Windows上运行的可执行.jar
文件。
我遇到的问题是在Mac上运行.jar
。当我双击运行时,它说我应该使用-XstartOnFirstThread
选项来运行.jar
。所以,我创建了一个shell脚本,只需使用以下代码行打开它:
java -XstartOnFirstThread -jar myJar.jar
这很好地运行了程序,但它不是一个易于分发的解决方案。所以,我正在尝试将.jar捆绑到Mac应用程序中。到目前为止,我尝试的所有内容都会产生相同的错误代码:
LSOpenURLsWithRole() failed for the application MyApp.app with error -10810
这是我到目前为止所尝试的内容:
JarBundler(链接here):同样的问题
Java教程: 尝试按照本教程,但appbundler似乎不再存在(至少我在我的Mac上找不到它,我在Java的网站上找不到它),本页上其他软件的大多数链接都已死。
AppBundler ant任务(链接here):无法完全确定如何使用它。
Eclipse OS-X App Bundler:同样的问题。
更改应用内可执行JavaApplicationStub的权限:同一问题
从头开始自己捆绑应用程序:同样的问题。
我现在几乎没有想法,有什么我想念的吗?
编辑:我正在使用的.jar文件是由Eclipse的“创建可运行的JAR文件”导出选项创建的。不确定这是否有所不同。
答案 0 :(得分:3)
我刚刚使用此Mario.jar
对此进行了测试<强>步骤:强>
答案 1 :(得分:1)
这是我用来将.jar(ShowTime.jar,Class ShowTime)转换为.app,在MacOS终端上的方式:
mkdir -p package/macosx
cp ShowTime.icns package/macosx
jdk=$(/usr/libexec/java_home)
$jdk/bin/javapackager -version
$jdk/bin/javapackager -deploy -native dmg \
-srcfiles ShowTime.jar -appclass ShowTime -name ShowTime \
-outdir deploy -outfile ShowTime -v
cp deploy/bundles/ShowTime-1.0.dmg show-time-installer.dmg
ls -l
这是我举例的地方:How to Create a Mac OS X Installer for a Java Application
答案 2 :(得分:0)
实际上AppBundler正是你所寻找的,但你已经说过:“无法弄清楚如何使用它”。所以,在这里你是如何使用它: http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/packagingAppsForMac.html 。 但请注意,本文档中的大部分链接都已更改或删除,但它解释了AppBudler的工作原理。