簡體   English   中英

如何使用 Java/Eclipse 創建 Windows.exe(獨立可執行文件)?

[英]How can I create a Windows .exe (standalone executable) using Java/Eclipse?

我是編程領域的新手。 與 C++ 一起工作了大約 5 個月,並決定開始進入 Java。我使用 Eclipse 作為我的 IDE,顯然 Java 用於語言。 我正在嘗試編寫一個簡單的 HelloWorld 應用程序,它可以通過命令提示符可執行文件運行。

在 Visual Studio 中,創建可執行文件似乎相當容易。 我所要做的就是使用下拉箭頭並選擇發布,然后運行我的構建。 希望能夠在命令提示符下編寫/運行 Java 的目的是讓我能夠在 go 之前完全使用 Swing 練習一些語言基礎知識。

所以歸根結底,創建用 Java 編寫的命令提示符.exe 的最簡單方法是什么?

提前致謝!

Java本身不允許構建exe ,這會破壞其跨平台的目的。

AFAIK,這些是您的選擇:

  1. 制作一個可運行的JAR 如果系統支持並且配置正確,則在GUI中雙擊JAR將啟動應用程序。 另一種選擇是編寫一個啟動程序shell腳本/批處理文件,它將使用適當的參數啟動您的JAR

  2. 還有可執行包裝器 - 請參閱如何將我的Java程序轉換為.exe文件?

另請參閱: 將Java轉換為EXE:為什么,何時,何時以及如何

典型的Java程序編譯成.jar文件,如果目標機器安裝了Java並且Java在其PATH中,則可以像.exe文件一樣執行。 從Eclipse中,您可以使用“文件”菜單中的“導出”菜單項。

使用jpackage創建本機安裝程序

java 名為jpackage打包工具作為 Java 開發工具包 (JDK) 版本 16 的一部分發布。

該工具與各種平台的本機打包工具(例如WIX用於 Windows, RPMDEB用於 Linux 發行版, DMG用於 Mac)結合使用,允許為 Java 應用程序構建本機安裝程序,然后可以作為可執行文件運行。 對於分發,可能只分發應用程序的可執行文件,獨立於安裝程序(我不知道,我沒試過)。

一篇不錯的教程風格的博客文章描述了如何使用jpackage工具為 Java 應用程序創建本機 Windows 安裝程序:

使用jlinkjdeps自定義運行時映像

打包工具可以(可選)與jlink工具結合使用:

jlink - 將一組模塊及其依賴項組裝並優化為自定義運行時映像

這允許您為您的應用程序自定義運行時映像,以僅包括您的應用程序代碼、java 運行時和第三方庫所需的自定義選定模塊化部分,而不是分發完整的 java 運行時。

或者,您也可以使用jdeps工具來確定jlink的輸入。

關於jdeps + jlink + jpackage + 本地包創建器(例如 wix/rpm/deb/dmg)用法的完整討論不在 scope 的 StackOverflow 答案中,但如果您搜索,可以在 web 上找到各種資源。

創建獨立的.exe而不是安裝程序

這可以使用warp-packerjlink創建的圖像和應用程序啟動器中創建一個 exe 來完成。

第三方工具可以幫助提供解決方案

如果您希望結合使用所有這些工具,事情會變得復雜,我建議您使用第 3 方實用程序或模板來幫助執行此任務。 例如:

  • badass-jlink-plugin文檔)->“允許您以最小的努力為模塊化應用程序創建自定義運行時圖像。它還允許您使用jpackage工具創建應用程序安裝程序。”

對於 JavaFX 特定應用程序(因為您的問題有 JavaFX 標簽),您可以查看:

  • JPackageScriptFX -> “演示項目如何使用腳本通過 jdeps、jlink 和 jpackage 工具構建獨立的、平台特定的可執行文件和其 JavaFX 應用程序的安裝程序。”

對於本機移動部署,請參閱 Gluon Mobile

這個問題是 Windows 具體的,但為了完整起見,如果您的目標是在移動設備上部署本機應用程序,那么您可能需要使用第三方解決方案,例如Gluon Mobile


背景原理(不需要的請忽略)

使用jpackage創建本機安裝程序可能需要一些工作,那么您為什么要這樣做呢?

以下是一些原因:

  1. 當應用程序通過使用jpackage創建的安裝程序分發時,該應用程序可以安裝在目標系統上,而無需用戶手動安裝其他依賴項(例如 Java 運行時)。 安裝程序將負責確保安裝您的應用程序及其所需的任何依賴項。
  2. 該應用程序附帶其自己的定制版本 Java 運行時。 這意味着如果用戶沒有安裝 JRE,並且如果他們安裝了與您的應用程序不兼容的 JRE 版本,您的應用程序仍將正確運行 function。
  3. 可以使用目標平台的標准操作系統設施安裝和卸載應用程序。 這些平台的大多數用戶都熟悉這些。

是的,Java 在大多數情況下是跨平台的,但許多用戶對此並不關心,相反,他們只是希望他們的應用程序有一個流暢和熟悉的安裝(和卸載)體驗,而jpackage可以幫助實現這一點。

創建.exe發行版對於Java來說並不常見。 雖然這樣的包裝器確實存在,但正常的操作模式是創建.jar文件。

要從Eclipse中的Java項目創建.jar文件,請使用file-> export-> java-> Jar文件。 這將創建包含所有類的存檔。

在命令提示符下,使用如下調用:

java -cp myapp.jar foo.bar.MyMainClass

暫無
暫無

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

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