2010-02-16 113 views
13

我創建了一個JAR文件,我想在客戶端上運行它。我有幾個問題:如何將JAR文件轉換爲EXE文件?

  1. 如何將JAR文件轉換爲EXE文件?
  2. 如何加密JAR文件的內容? jar文件可以用WinRAR提取,並且可以用任何Java反編譯器反編譯這些類。
  3. 如何創建安裝程序?我的客戶沒有任何JVM,我也不想隨身攜帶JDK或JRE,因爲它們尺寸很大。
+0

如果你把jar轉換成exe(在我想的windows上),它可能會在exe文件中拉一半的jre來滿足依賴關係。 – extraneon 2010-02-16 10:30:59

+0

http://yuvadeveloper.blogspot.com/2009/03/convert-jar-files-to-exe.html – 2010-08-22 18:11:05

回答

13
  1. 看到這個鏈接:Java to Exe。它還解釋了什麼是有效的原因,以及什麼時候不應該。

  2. 您不能真正加密二進制文件,因爲機器必須理解它們。也就是說,優化的可執行文件非常難於反編譯,而普通的類文件很容易。

  3. 如果你有一個exe,那麼安裝程序就足夠了。

2

至於1):我想你不能。可能有工具存在,但不能用JDK附帶的標準工具來實現,因爲它會破壞平臺獨立性。 (請參閱提供此類第三方工具鏈接的其他答案)

至於3):使用InnoSetup創建安裝程序。在安裝程序中包含JRE並讓InnoSetup即時安裝。

+0

我無法真正看到平臺獨立性作爲一項要求。您通常針對的是觀衆,而不是平臺。如果他們已經標準化了一個環境,您可以定位並測試該環境。 – extraneon 2010-02-16 10:43:45

+0

我的意思是,由於平臺獨立性的原因,這種工具不會隨JDK一起發貨。 JDK提供了工具來爲任何平臺上的任何平臺構建和打包應用程序。 – 2010-02-16 12:20:26

2

您無法防止反編譯。你可以做的最好的做法是讓它變得更加困難或者更耗時。儘管如此,作爲對您問題的回答,我相信您可以使用gcj將Java編譯爲EXE。

+2

+1指出試圖防止逆向工程的徒勞無益。 – 2010-02-16 11:04:31

2

可能是Excelsior JET會滿足您的需求。)恕我直言,非常成熟的產品。

1

1)我最近嘗試過程序jarToExe並喜歡它。 某些功能有:「企業有Windows任務管理器列表中應用程序的名稱,而不是默認的java

  • 能力

    • 免費的基本版或非常便宜($ 30)。EXE
    • 額外混淆
    • 運行時檢查安裝Java,

    2)你可以把它更難逆轉使用proguard或其他混淆工程師

    3)nsis是一個非常強大的,免費的腳本語言來創建Windows安裝程序。網站wiki上的良好文檔以及堆棧溢出支持。

  • 1

    Launch4j爲我工作,而一些工具還沒有工作。它也有一個很好的指導here

    希望得到這個幫助!