一、運行.jar文件生成的.xml文件出現亂碼
情況描述:
通過代碼運行生成的.xml文件不出現亂碼;但是,把該代碼打包成.jar,在運行,生成的.xml文件就出現亂碼;
解決方法:
echo %~dp0
java -Dfile.encoding=UTF-8 -jar MainNcTimer.jar
pause
加上:-Dfile.encoding=UTF-8 就可以搞定生成的.xml文件出現亂碼問題;
java -Dfile.encoding=UTF-8 -jar MainNcTimer.jar 在Dos窗口中,也可以運行;
注:
Document dom=DocumentHelper.createDocument();//創建xml文件
dom.setXMLEncoding("UTF-8");
//dom,默認編碼爲UTF-8
二、使用exe4j工具打包成.exe文件運行該文件生成的.xml文件出現亂碼問題
首先,自行下載安裝exe4j軟件;
這個是之前整理的博客文章:https://blog.csdn.net/u013456370/article/details/39235053
現在,在最後生成的.xml文件出現亂碼問題,參考下面的內容,就可以解決了!
1.打開安裝好的exe4j軟件,首先是一個歡迎界面,直接【next】
2.選擇【JAR in EXE mode】,然後【next】;
3.需要輸入程序的縮寫名字和指明輸出目錄,就是exe的保存目錄,然後【next】;
4.指定程序的名字,設置程序的圖標,注意,程序圖標要用ico格式的圖片;
選項“ Allow only a single running instance of the application”,勾選上之後,該exe只能運行一個;
選擇Redirection選項,在兩個位置中可以寫記錄日誌的文件名稱,目錄爲和exe的相同目錄;
在32-bit or 64-bit來決定你生成的exe是32位還是64位的;
Version info爲版本說明。
5.我們需要添加我們的jar包,點擊右邊綠色的 “+”號,然後選擇【Archive】,打開瀏覽目錄,找到我們的jar包,然後選擇【打開】,【ok】; 解決生成.xml文件(可能其他文件也可以吧)亂碼問題一定要添加:VM Parameters:-Dfile.encoding=utf-8
main class中選擇程序的入口,包含main方法的類
VM Parameters中可以設置虛擬機的一下參數,-Dfile.encoding=utf-8是設置了utf-8的編碼,以防中文亂碼;
6.設置JRE的最小最高版本,我們根據自己的情況設置就ok,小版本設置成1.5,大版本設置成1.8,就行;
然後點擊【Advanced Options】,選擇【Search sequence】,將我們的JRE添加到軟件中,這樣的話,我們的代碼可以在別的沒有安裝Java環境的電腦上運行;點擊右邊的添加,選擇【Directory】,然後選擇【瀏覽】,找到我們的JRE,然後添加;
通過旁邊的+號可以選擇引用jdk的方式
然後點擊左側的【Preferred VM】,選擇【Client hotspot VM】,然後【next】;
7.其餘的步驟我們直接默認就ok了,這樣我們生成的exe文件就能正常運行了!
8.最後在Finished中選擇save,保存現在的配置
以後可以直接打開配置的文件,有修改的話,可以直接跳至該步驟修改,然後直接點擊finish,可以直接生成需要的exe。