[英]How to create an executable file from a jar for mac os (using windows or linux) with a JRE included
各位晚上好。
我正在寻找很多天对我的问题的简单且不被弃用的答案:
我在我的电脑(Windows)上创建了一个 java 程序。 通过该程序,我创建了一个可运行的 jar,它可以在我的计算机上完美运行。 现在,我想将 jar 转换为 MAC OS 的可运行文件格式,并在我的应用程序中包含一个 JRE(这样我的客户就不必在他的每台计算机上安装 java)。
经过一些研究,我发现的唯一解决方案太旧(无法使用)或非常复杂(并且没有足够的文档记录)。
我听说过 jar2app,但是您必须包含的有关 JRE 的部分并不是很清楚。 很多人也用 launch4j 回答,但它只创建 Windows 可执行文件。
我同时拥有 Linux 和 Windows,但无法访问 MAC OS 计算机来开发任何东西(只是测试)。 我正在使用 java 1.8。
下面是本文的摘录,我希望它也适用于 Java-8:
由于此示例使用JAVA_HOME
定义运行时子元素,因此请确保为您的环境正确配置它。 例如,在您的.bashrc file
中,定义JAVA_HOME
如下:
export JAVA_HOME=/usr/libexec/java_home
使用以下步骤修改项目目录顶部的build.xml
文件:
指定一个名为 env 的环境属性:
<property environment="env" />
在创建包的目标中,使用 env 属性指定 JRE 在系统上的位置:
<runtime dir="${env.JAVA_HOME}" />
生成的build.xml
文件应如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<project name="ButtonDemo" default="default" basedir=".">
<import file="nbproject/build-impl.xml"/>
<property environment="env" />
<taskdef name="bundleapp"
classname="com.oracle.appbundler.AppBundlerTask"
classpath="lib/appbundler-1.0ea.jar" />
<target name="bundle-buttonDemo">
<bundleapp outputdirectory="dist"
name="ButtonDemo"
displayname="Button Demo"
identifier="components.ButtonDemo"
mainclassname="components.ButtonDemo">
<runtime dir="${env.JAVA_HOME}" />
<classpath file="dist/ButtonDemo.jar" />
</bundleapp>
</target>
</project>
使用ant bundle-buttonDemo
命令创建一个新版本的ButtonDemo.app
。 生成的版本包括应用程序 package 中的 JRE。 您可以通过检查应用程序 package 内的 Contents/PlugIns 目录来确认这一点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.