Java 如何使用包含JRE的mac os(使用windows或linux)从jar创建可执行文件
各位晚上好 我一直在寻找一个简单而不受反对的答案来回答我的问题: 我已经在我的电脑(Windows)上创建了一个java程序。从这个程序中,我创建了一个可运行的jar,它可以在我的计算机上完美地运行。 现在,我想将jar转换为MAC OS的可运行文件格式,并在我的应用程序中包含一个JRE(这样我的客户机就不必在他的每台计算机上安装java) 经过一些研究,我发现唯一的解决方案是太旧(无法使用)或非常复杂(并且没有足够的文档) 我听说过jar2app,但关于JRE的部分,您必须包括的内容并不十分清楚。很多人也用launch4j来回答,但它只创建Windows可执行文件Java 如何使用包含JRE的mac os(使用windows或linux)从jar创建可执行文件,java,windows,macos,executable-jar,Java,Windows,Macos,Executable Jar,各位晚上好 我一直在寻找一个简单而不受反对的答案来回答我的问题: 我已经在我的电脑(Windows)上创建了一个java程序。从这个程序中,我创建了一个可运行的jar,它可以在我的计算机上完美地运行。 现在,我想将jar转换为MAC OS的可运行文件格式,并在我的应用程序中包含一个JRE(这样我的客户机就不必在他的每台计算机上安装java) 经过一些研究,我发现唯一的解决方案是太旧(无法使用)或非常复杂(并且没有足够的文档) 我听说过jar2app,但关于JRE的部分,您必须包括的内容并不十分清
我有Linux和Windows,但不能访问MAC OS计算机来开发任何东西(只是测试)。我正在使用java 1.8。下面给出的是一个摘录,我希望它也适用于java-8: 由于此示例使用
JAVA\u HOME
定义了运行时子元素,因此请确保为您的环境正确配置了它。例如,在.bashrc文件
中,定义JAVA\u HOME
,如下所示:
export JAVA_HOME=/usr/libexec/java_home
使用以下步骤修改项目目录顶部的build.xml
文件:
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
。最终版本包括应用程序包中的JRE。您可以通过检查应用程序包内的Contents/PlugIns目录来确认这一点。考虑将其用于非模块化应用程序。或者如果它是模块化的,就有了。github页面处于活动状态,根据我的经验,问题会得到及时解决。它为Windows、Linux和OSX构建
即使它使用了最新的Java特性jpackage
,您仍然可以在较新的JDK版本中使用jpackage
的同时,在较早的JDK版本中编译代码
我最近更新使用它,欢迎您查看(如果您这样做,请提供反馈)。该插件网站上还有其他例子。VassiliKan-如果其中一个答案解决了您的问题,您可以通过将其标记为已接受来帮助社区。公认的答案有助于未来的访问者自信地使用解决方案。要进行此操作,您需要单击大复选标记(✓) 在答案的左边。注意:一个问题只能接受一个答案。但是,一旦你有15+个信誉点,你可以根据自己的意愿选择任意多个答案。