㈠ jar包換個電腦運行不了
1、首先准備我們的資源,把要轉換的Jar文件、精簡過的JRE文件夾和想生成的EXE文件的圖標(可以是png,jpg等格式,不想加圖標可以不弄)放到同一個文件夾內。這一步一定要做,否則可以成功生成,但在沒有java環境的機子上還是不能運行,因為他會找不到JRE文件夾的位置
2、雙擊jsmoothgen.exe,出現主界面。
3、點擊骨架,我從骨架中選擇Windows Wrapper(根據自己程序需要選擇),即有圖像界面的窗口程序,下面的消息為找不到JRE環境時顯示的消息,URL為JRE的下載地址。
4、點擊可執行文件,填寫生成EXE文件的文件名(路徑)和圖標
5、點擊族爛兄應用程序:
可以選擇「嵌入式Jar」,即將Jar文件嵌入到EXE文件裡面,也可以在Classpath中加入Jar文件,不過這樣生成的EXE文件里沒有Jar文件,運行時需要從外部載入。
我們勾選「歷磨嵌入式Jar」,填寫要轉換的Jar文件路徑。
然後點擊「主類」後面的瀏覽按鈕出現如下對話框:
從中選擇主類,點Select按鈕。
6、關鍵的一步:JVM選擇.
點選捆綁在你應用中的JVM,點擊瀏覽按鈕,選擇JRE目錄
7、哈哈,現在可以點擊工具欄上小齒輪編譯了。
看看我們的EXE文件
原來Jar文件 184 KB
現在exe文件為 611 KB。
8、這個程序在有java環境的機子上可以獨立運行
在沒有java環境的機子上只要該目錄下有JRE文件夾(JRE環境)就可以運行。
9、我們測試一下,在沒有java環境的虛擬機上可以成功運行。
在轉換中可能會遇到的問題:
1.步驟5找不到主類,可能是因為在Eclipse導出jar包時,為了一塊導出外部包用了fatjar插件,在導出時勾選One-JAR會導致出現這種情況,應該不勾此選項。
2.生成的exe無法運行,可能是因為JVM的內存佔用沒有設置的足夠大,這個可以在JSmooth中JVM配置中設置,教程中沒有涉及,在此選兆襲項中設置最大佔用內存,如-Xmx512m,之後便可以正常運行。
㈡ 運行jar文件前,我需要設置java虛擬機虛擬內存
設置JVM內存的參數有四個:
-Xmx Java Heap最大值,默認值為物理內存的1/4,最佳設值應該視物理內存大小及計算機內其他內存開銷而定;
-Xms Java Heap初始值,Server端JVM最好將-Xms和-Xmx設為相同值,開發測試機JVM可以保留默認值;
-Xmn Java Heap Young區大小,不熟悉最好保留默認值;
-Xss 每個線程的Stack大小,不熟悉最好保留默認值;
2. 如何設置JVM內存分配:
(1)當在命令提示符下啟動並使用JVM時(只對當前運行的類Test生效):
java -Xmx128m -Xms64m -Xmn32m -Xss16m Test
(2)當在集成開發環境下(如eclipse)啟動並使用JVM時:
a. 在eclipse根目錄下打開eclipse.ini,默認內容為(這里設置的是運行當前開發工具的JVM內存分配):
-vmargs
-Xms40m
-Xmx256m
-vmargs表示以下為虛擬機設置參數,可修改其中的參數值,也可添加-Xmn,-Xss,另外,eclipse.ini內還可以設置非堆內存,如:-XX:PermSize=56m,-XX:MaxPermSize=128m。
此處設置的參數值可以通過以下配置在開發工具的狀態欄顯示:
在eclipse根目錄下創建文件options,文件內容為:org.eclipse.ui/perf/showHeapStatus=true
修改eclipse根目錄下的eclipse.ini文件,在開頭處添加如下內容:
-debug
options
-vm
javaw.exe
重新啟動eclipse,就可以看到下方狀態條多了JVM信息。