[英]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.