簡體   English   中英

"自包含應用程序,用 Java 構建"

[英]Self-Contained Applications, built in Java

我看過一些在線演示文稿,其中簡要提到了 Java 9 中的自包含應用程序,但我有一個問題想澄清一下。

使用新的模塊系統,您現在可以只包含運行應用程序所需的最少代碼量。 但是,希望運行應用程序的系統是否仍需要 JRE,或者是否可以將其包含在程序的基本模塊中?

我懷疑是后者,因為下載最新版本 Java 的頁面(此處<\/a>)仍然顯示版本 8_151。

TL;DR - 使用 Java 9,是否可以創建一個獨立的可執行文件,可以在沒有安裝 JRE\/Java 的系統上執行?

鏈接<\/h1>

是的,這可以通過jlink<\/code><\/a> ( JEP 282<\/a> ) 實現,但是您的所有代碼和<\/em>依賴項都需要是模塊化 JAR(即帶有module-info.class<\/code>的 JAR)。 它是這樣工作的:

詳細:

    --module-path<\/code>列出包含模塊的文件夾 - 這需要包括您要使用的 JDK 附帶的平台模塊(在$JAVA_HOME\/jmods<\/code> )和您的應用程序模塊( mods<\/code> )<\/li>
  • --add-modules<\/code>命名您希望運行時映像包含的模塊 - 包括其所有(它們的)傳遞依賴項<\/li>
  • --launcher<\/code>是可選的,但非常方便; 它使用給定名稱( launch-app<\/code> )創建一個特定於操作系統的啟動器(例如 Windows 上的.bat<\/code> ),該啟動器啟動指定的模塊( your.app<\/code> ;在這種情況下,假設為它定義了主類)<\/li>
  • --output<\/code>指定創建運行時映像的位置<\/li><\/ul>"

這對我有用。 它在應用程序文件夾中包含 JRE 並創建一個可執行文件。 我在 src 文件夾中有我的文件 java 文件,這個命令編譯並創建了一個帶有可執行文件的 dist 文件夾。

javapackager -makeall -name WordAnalyzer_app -appclass queue.Gui
pause

暫無
暫無

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

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