2017-03-04 59 views
0

我在Netbeans中創建了一個JavaSE應用程序,並且使用Inno Setup 5來生成我認爲是完整的Windows安裝(包括JRE)的內容。按照指示,我已經檢查了NetBeans屬性盒子的Native,並且在Path中有Inno Setup 5。 EXE生成並安裝很好PROVIDED目標機器安裝了Java。如果沒有,則與.jre沒有文件關聯,並且沒有javac.exe,因此.jar文件將不會運行。NetBeans和Inno安裝程序不會生成正確的Native .exe

3/4/2017:經過大量探索和嘗試今天的工作之後,我現在可以更全面地瞭解NetBeans Native包裝實際上在做什麼。它會創建一個Installer exe文件,該文件在傳輸到具有或不具有JRE的目標機器上並在其上執行時,會創建實際的myApp.exe並將其放在「開始」菜單上。我的問題一直認爲myApp.jar文件中包含JRE,所以我只是試圖雙擊myApp.jar。如果我使用myApp.exe,它會起作用。

但是,我現在看到我仍然有問題。 myApp需要許多支持數據文件並從.ini文件讀取數據。因此,我將不得不創建一個Inno設置來分別執行這些操作,而我的用戶將不得不下載並運行TWO安裝程序。如果做過NetBeans本地安裝程序的人使Inno安裝文件可以進行編輯,那將很整潔。

埃德

+1

什麼.jar文件?我以爲你有一個exe ... –

+0

我指的是myApp.jar。詳細闡述一下,Netbeans創建app jar文件,比如myApp.jar。我使用Inno Setup創建setup.exe。 Inno腳本指示將myApp.jar保存到C:\ ProgramFiles \ myApp中。 –

+0

因此,如果您的問題實際上是「如何使NetBeans本地安裝程序中的Inno安裝文件可訪問」,請相應地對其進行編輯。或刪除這一個,並要求一個新的。 –

回答

1

的NetBeans對創建「本機」應用程序,即,爲Windows MyApp.exe將文件打包選項。這一點的重要性在於你得到一個Windows可執行文件INCLUDES JRE,這意味着最終用戶不需要在他/她的機器上安裝Java或JRE來運行該應用程序。

這聽起來很棒,但文檔並不清楚如何使其工作,至少不是我。這是我學到的東西。

首先,爲了實現這個目標,您必須在您的開發計算機上安裝Inno Setup 5或更高版本。顯然,NetBeans創建了一個Inno .iss文件並運行它。

爲了更好地理解它,我爲Inno AnagramGame示例做了一個NetBeans項目。要啓用本地打包選項,請先選擇NetBeans中的項目,右鍵單擊並選擇「屬性」|「部署」。檢查Native包裝盒。這會導致EXE選項位於NetBeans打包菜單上。也就是說,選擇項目,右鍵單擊,然後單擊程序包。點擊EXE安裝程序啓動構建「包」的過程。

構建安裝程序需要很長的時間,因爲它必須累積JRE的所有必要部分並將其合併到程序包中。這也使安裝程序BIG。即使是最小的Java程序,它也將是大約35 Mb。

一些應用程序的本地包裝之後,例如AnagramGame2,你會發現在NetBeans項目文件夾下面的: C:\用戶\埃德·索維爾\文檔\的NetBeansProjects \ AnagramGame2 \ DIST \ anagrams.jar 和 C:\ Users \ Ed Sowell \ Documents \ NetBeansProjects \ AnagramGame2 \ dist \ bundles \ AnagramGame2-1.0.exe

Anagrams.jar是AnagramGame2應用程序的Java歸檔文件。如果您安裝了JAVA,則實際上將通過雙擊運行該項目。但是,如果將其移動到另一臺未安裝Java或JRE的計算機上,則它將不可執行。原因是jar文件不包含JRE。我花了很長時間才意識到這一點。

現在,您可能會認爲AnagramGame2-1.0.exe是應用程序的本機可執行文件,但是,不是。這實際上是安裝者,另一件事花了我很長時間才意識到。

那麼,哪裏是傳說中的Windows本機應用程序文件?答案是沒有,但是。爲了得到它,你必須運行安裝程序!運行後,你會發現在所有地方的C:\ Users \ Ed Sowell \ AppData \ Local \ AnagramGame2中很想要的EXE:

C:\ Users \ Ed Sowell \ AppData \ Local \ AnagramGame2 \ AnagramGame2。 exe

此外,選擇適當的選項後,應用程序名稱將出現在Windows的「開始」菜單和桌面上。

因此,分發,你必須在Windows本地應用程序:

  1. 創建一個NetBeans項目。
  2. 做項目的一個乾淨的構建
  3. 要啓用該項目
  4. 做一個包作爲本土包裝選項|機安裝
  5. 分發安裝程序,在本例中爲AnagramGame2-1.0.exe
  6. 您的用戶然後運行安裝程序。之後,他/她從「開始」菜單運行應用程序或雙擊桌面圖標。

對於正確使用此NetBeans/Inno安裝過程,仍然存在很多不明白的地方。有一些小小的謎團,比如爲什麼它隱藏了User AppData Local中最終產品的位置。誰會想到那裏?爲什麼它會調用安裝程序AnagramGame2-1.0.exe而不是像setupAnagramGame2.exe這樣的東西?但是,這是我尚未解決的最大問題:如何安裝應用程序所需的輔助文件?或者從INI文件中獲取所需的數據?如果在NetBeans過程中構建和使用的.iss文件可用於編輯,但到目前爲止我還找不到它。我的猜測是它被刪除。除此之外,我能想到的唯一辦法是編寫另一個 .iss文件來完成這項工作。不幸的是,這意味着用戶必須下載並運行兩個安裝程序!

+0

檢查[如何使用Inno Setup for NetBeans的自定義.iss文件](http://stackoverflow.com/q/24954621/850848)(不確定是否是正確的答案,顯然是JavaFX的,而且我不是確定NetBeans是否使用JavaFX)。 –

+0

我的應用程序正在使用JavaSE。當我在NetBeans中進行本地打包時,我在Ourput面板中看到「在本機打包模式下啓動 ...」。然而,像.iss文件一樣,我不知道部署文件的位置,或者它可以提供給我。我還有一件事要嘗試:在我的開發機器上運行生成的安裝程序,從而在本地創建實際的MyApp.exe。然後將其作爲Source文件包含在Inno .iss腳本中,該腳本構建將分發的安裝程序。 –

相關問題