2013-01-12 194 views
0

我在java中創建了jar文件。它使用一些庫文件。所以,最終的結構我是,從jar中創建可執行文件

  • example.jar
  • LIB
    • 庫文件

如何將它們轉換成一個單一的文件,像一個exe視窗?它也應該在Linux上運行,例如(.sh文件 - NetBeans安裝程序)。

+0

我懷疑你可以編寫一個在Linux和Windows下運行的可執行文件。爲什麼不創建一個包含代碼和庫的jar文件? – MrSmith42

+0

*「請不要爲此拒絕投票。」*請在將來進行一些調查。 1)許多'Java到EXE'的問題都提到[Java Web Start](http://stackoverflow.com/tags/java-web-start/info)是任何應用程序的更好選擇。與GUI。你有沒有讀過這些應用程序?有一個GUI?您是否有理由不想使用Oracle技術,使Windows * nix和OS X成爲可能? 2)你不要通過禮貌地不要回避低票,而是通過問一個好問題來避免它們! –

回答

2

如果您使用Netbeans檢查this將所有jar加入其中,現在當您有1個jar時,您可以使用launch4j創建exe文件。

3

只是要擠滿了所有的庫依賴一個JAR。

  1. 如果Maven是您的構建工具,請檢查this SO question。對於其他工具(Gradle等)也有類似的解決方案。

  2. 一些IDE也有這個能力,比如NetbeansIntelliJ IDEA都是。

當然可以肯定,你想打包的庫有一個許可證,允許這樣做。

1

雖然這可能是對Java性質。

Java是(一次編寫,隨處運行)設計爲可移植的語言;您的.jar文件包含Java字節碼,該字節碼將在運行時由Java虛擬機進行解釋;你可以將它複製到任何體系結構,並在那裏運行。

一個.exe文件實際上包含機器代碼的特定語言,它將直接由處理器運行;這不適用於另一個架構。

但是,您的需求有不同的工具,如JarToExeJSmooth

+0

架構在這裏並不是真正的問題,幾乎任何用於臺式機/筆記本電腦的處理器都能理解x86機器代碼。 – Cubic

1

你這裏有幾個選項:

  • 編譯與像GCJ的本地應用程序。這是不是在很多情況下一個選項,但(你會看到爲什麼如果你看看它)

  • 有運行你的罐子修改java可執行

  • 有運行與Java的罐子可執行

如果你能合理地假設您的客戶端已經安裝了Java,它應該是罰款雖然只部署一個可執行的JAR - 在大多數桌面OS'es java的分佈設置爲按預期方式運行可執行罐子(即通過在Windows中雙擊),以及在那些不是的 - 那麼,人們會我可能知道什麼是java以及如何運行jar。