簡體   English   中英

如何制作不需要安裝Java的Mac App Java

[英]How to make Java Mac App that doesn't require installing Java

我想使用我編寫的 Java 代碼制作一個 Mac 應用程序,並且我想讓使用它的人不需要在他們自己的計算機上安裝 Java。

有沒有辦法創建一個 Mac 應用程序,以便它可以在任何 Mac 上運行,無論它們是否安裝了 Java?

捆綁 JVM 或編譯本機

您可以選擇三種方式將基於 Java 的本地應用程序交付給 Mac 用戶。

  • 用戶在他們的機器上安裝JDKJRE (或者 IT 系統管理員這樣做。)
  • 應用程序與特定操作系統和特定芯片架構的JVM捆綁在一起。
  • 應用程序被編譯為特定操作系統和特定芯片架構的本機代碼。

安裝 JDK/JRE

在公司或學校等受控環境中,在每台 Mac 上安裝 JDK 或 JRE 可能是可行的。 如果您正在編寫JavaFX應用程序,則可以安裝 OpenJFX 庫附帶的 JDK/JRE 版本。

然后可以使用已安裝的 JVM 執行您的 Java 應用程序。

順便說一句,在這樣的受控環境中, OpenWebStart是一種通過使用 web 瀏覽器的便利來交付和啟動本地 Java 應用程序的方法。

相比之下,Oracle 已經放棄了期望普通消費機器預裝 Java 的方法。 有關詳細信息,請參閱 Oracle 白皮書, Java 客戶端路線圖更新 因此,期望個人安裝 Java 是不切實際的。

捆綁 JDK/JRE

您可以構建您的應用程序,以包含適用於特定類型機器的 JDK/JRE,這意味着特定的操作系統和特定的芯片架構。

對於 Mac,這意味着您需要一個構建用於配備Intel (x86)芯片的 Mac,另一個構建用於配備Apple Silicon (ARM、AArch64)芯片的 Mac。 您可能需要為您的應用程序提供兩個單獨的版本,每個子版本一個,或者可能需要為兩個芯片提供一個包含兩個 JDK/JRE 的“胖二進制文件” 在以前的芯片轉換中,Apple(及其發起者NeXT Inc. )支持胖二進制方法,但我尚未驗證現在英特爾到 Apple Silicon 的轉換是否就是這種情況。

現代工具有助於嵌入 JDK/JRE。 請參閱jlinkjpackage 請參閱打包工具用戶指南 從 Java 9 開始, Java 平台模塊系統僅允許包含特定應用程序實際使用的 JDK/JRE 部分。 省略了未使用的部分,使最終的應用程序工件尺寸更小。

編譯本機

最后一種方法使用GraalVM技術將您的代碼編譯為特定於目標運行時機器的本機代碼。 與傳統的 JVM 編譯為字節碼以在運行時進行解釋和可選的 JIT 編譯不同,在構建應用程序時會執行對本機機器語言的完整編譯。 這種方法是前沿的,也許是前沿的。 因此,如果您敢於考慮這種新穎的方法,請仔細研究並徹底測試。

使用最后兩種方法,您可以選擇通過Apple App Store進行分發。

您不需要在客戶端計算機上安裝 JDK,但我們知道 java 將程序轉換為字節碼,需要 java 編譯器將該字節碼編譯為機器語言 您必須在客戶端計算機上安裝 JRE,無論是 mac 還是 windows 或任何其他操作系統

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM