簡體   English   中英

如何從 Java 項目創建一個完全可移植的 exe?

[英]How can I create a completely portable exe from a Java project?

My goal is simply to take my Java project (JDK 11, Javafx, non-modular, using Gradle in Intellij) and package into a single exe file. 用戶無需安裝程序,無需 JRE。 有各種打包和 exe 創建工具,但我還沒有讓一個按我想要的方式工作。

起初我嘗試了 javapackager 但 Inno Setup 一直出錯。 然后我設法讓launch4j工作,但我不久前發現其中沒有嵌入式JRE,所以它無法在沒有Java的計算機上運行。 我還研究了 jPackage,但據我所知,它只創建安裝程序,而且我在設置它時也遇到了麻煩。 我最終循環回到 javapackager 並建議使用 Inno Setup 5 而不是 6,這很有效,但結果是安裝程序,似乎也沒有選項(至少默認情況下)

我想要實現的目標是不可能的,即使在我看來它應該是這樣嗎? 如果是這樣,我能達到的最接近的可能是什么? 最重要的是,用戶不必擔心安裝了 Java,rest 我可能可以使用的東西

這對我有用:首先,將您的項目提取到.jar - 在 IntelliJ 中,您將build一個artifact 當你得到這個.jar文件時,我可以推薦以下內容:

  1. 一個folder ,您可以在其中執行所有這些步驟,從而使一切變得整潔
  2. 找到您的project JRE
  3. 也許你的.exe的圖標

現在將.exe的圖標以及 JRE 的binlib文件夾復制到另一個文件夾中,例如文件夾 (1) 中的“jre”。

結構應如下所示:Folder->{icon.ico, jre ->{bin, lib}, yourProjectJar.jar}

完成后,下載launch4j 並運行它。 在那里(在 Basic 下),必須選擇帶有.exe擴展名的 output 文件,並選擇放置項目 jre 的binlib文件夾的文件夾。 非強制性是為您的.exe選擇一個圖標 - 您也可以在 Basic-Tab 下找到它。

最后一個強制性步驟是將 go 插入 JRE-Tab 並插入絕對路徑,例如名為“jre”的文件夾,其中項目 jre 的binlib文件夾用於“捆綁的 JRE 路徑”。 然后選擇您的 Min JRE 版本(同樣,在 JRE-Tab 中)並確保將右側的下拉菜單設置為“僅使用私有 JDK 運行時”。

最后,單擊“Build Wrapper”(它是從左側看的第四個符號),在為您的 Manifest 選擇一個位置之后,您應該擁有它。

問候,JC

PS:這應該為您提供一個帶有項目JRE.exe ,因此可以在任何系統上運行。 恭喜。 與其他一些語言相比,您剛剛使用了 Java 的優勢。

暫無
暫無

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

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