我有一个应用程序,有几千个用户下载,是用java编写的,多年来一直很稳定。它在windows和osx上运行。现在osx high sierra的新版本出现了问题。
该应用程序在Java1.6中崩溃,但在Java1.8中运行良好。
在app文件夹中有一个文件 Info.plist
. 该文件最初指定了一个java JVMVersion
1.5+。这导致我的应用程序在Java1.6下运行。如果Java1.6不存在,会弹出一条消息,提示用户安装“遗留JavaSE6运行时” Info.plist
指定为1.8+,但当我尝试运行该应用程序时,会弹出一条消息,说“没有兼容的java 1.8+版本可用”。尽管我直接从oracle.com下载并安装了java 8 151版。
如何让应用程序在Java8下运行?
1条答案
按热度按时间xxb16uws1#
是的,答案是捆绑jre。让一切正常运转是一次冒险。对于其他必须经历相同或类似过程的人,我列出了这些步骤。
我的应用程序是用java编写的,我的主要开发机器是windows。要分发应用程序,我需要将必要的文件复制到我的mac并打包到那里。
下载
apache-ant-1.10.1-bin.zip
从ant.apache.org
. 把它移到/Library/Java/Extensions
.从下载appbundlerhttps://bitbucket.org/infinitekind/appbundler/,并将其安装到
~/JCode/appbundler
.这就产生了
~/JCode/appbundler/bin/appbundler-1.0ea.jar
. 复制到~/JCode/intonia/lib
.在windows上,使用eclipse和proguard创建
Intonia.jar
,并复制到~/JCode/intonia
. 同时复制分发所需的其他库jar和文件。在中创建build.xml
~/JCode/intonia
. 以下是我的build.xml:为了让事情正常运行,值得注意的调整包括
<runtime dir="${env.JAVA_HOME}"/>
,和<option value="-Xdock:icon=Intonia.icns"/>
除了icon="Intonia.icns"
.这就产生了
~/JCode/intonia/appBundle/Intonia.app
.我的应用程序使用javahelp。javahelp要求帮助文件位于jar文件的子目录中,名为
Help
. 我还没有找到让appbundler创建和填充这个目录的方法,所以我必须手动添加它。在finder中,显示包内容。选项拖动文件夹~/JCode/intonia/Help
进入Contents/Java/
目录Intonia.app
.在中创建“distribution.xml”
~/JCode/intonia
. 文件如下:最后,运行productbuild。它可以签署分配