国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

解決java在idea運行正常,但是打成jar包后中文亂碼問題

這篇具有很好參考價值的文章主要介紹了解決java在idea運行正常,但是打成jar包后中文亂碼問題。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

比如: 打包命令使用utf-8編碼:


1.當(dāng)在idea中編寫的程序,運行一切正常.但是當(dāng)被打成jar包時,執(zhí)行的程序會中文亂碼.產(chǎn)生問題的原因和解決方案是什么呢?

一.問題分析
分別使用idea和jar包形式打印出System中所有的jvm參數(shù)---代碼如下:

public static void main(String[] args) {

? ? ? ? printEnv();

? ? ? ? //讀取excel
? ? ? ? ExcelUtil.simpleRead(Constant.EXCEL_PATH, AddedTax.class, 0, new AddedTaxListenner());

? ? }


? ? private static void printEnv(){
? ? ? ? //獲取環(huán)境變量
? ? ? ? Map<String, String> envs = System.getenv();
? ? ? ? envs.forEach( (key,value) ->{
? ? ? ? ? ? //System.out.println("env---key是: "+key +" ; "+"env---value是: "+ value);
? ? ? ? });

? ? ? ? //獲取jvm屬性
? ? ? ? Properties properties = System.getProperties();
? ? ? ? properties.forEach((key, value) -> {
? ? ? ? ? ? System.out.println("jvm---key是: "+key +" ; "+"jvm---value是: "+ value);
? ? ? ? });


? ? }


?
?

idea的打印結(jié)果:

jvm---key是: user.name ; jvm---value是: ZHULIBIN10
jvm---key是: file.encoding ; jvm---value是: UTF-8
jvm---key是: java.specification.version ; jvm---value是: 1.8
jvm---key是: java.awt.printerjob ; jvm---value是: sun.awt.windows.WPrinterJob
jvm---key是: user.timezone ; jvm---value是: Asia/Shanghai
jvm---key是: user.home ; jvm---value是: C:\Users\zhulibin10
jvm---key是: os.version ; jvm---value是: 10.0
jvm---key是: sun.management.compiler ; jvm---value是: HotSpot 64-Bit Tiered Compilers
jvm---key是: java.specification.name ; jvm---value是: Java Platform API Specification
jvm---key是: java.class.version ; jvm---value是: 52.0

jar包的打印結(jié)果:

解決java在idea運行正常,但是打成jar包后中文亂碼問題

?如上圖所示:

?問題就在這里,當(dāng)使用idea時候,file.encoding的值是UTF-8; 使用jar包運行則file.encoding的值是GBK,這是導(dǎo)致亂碼的直接原因.

java 亂碼問題解決: -Dfile.encoding=UTF-8
?

-Dfile.encoding 解釋:
在命令行中輸入 java,在給出的提示中會出現(xiàn) -D 的說明:
-D<name>=<value> # set a system property
-D 后面需要跟一個鍵值對,作用是設(shè)置一項系統(tǒng)屬性
對 -Dfile.encoding=UTF-8 來說就是設(shè)置系統(tǒng)屬性 file.encoding 為 UTF-8
那么 file.encoding 什么意思?字面意思為文件編碼。
搜索 java 源碼,只能找到 4 個文件中包含 file.encoding 的文件,
也就是說,只有四個文件調(diào)用了 file.encoding 這個屬性。
在 java.nio.charset 包中的 Charset.java 中,這段話的意思說的很明確了。
簡單說就是默認(rèn)字符集是在 java 虛擬機(jī)啟動時決定的,
依賴于 java 虛擬機(jī)所在的操作系統(tǒng)的區(qū)域以及字符集。
代碼中可以看到,默認(rèn)字符集就是從 file.encoding 這個屬性中獲取的。

二.問題解決總結(jié):

?不管在任何平臺,啟動jar包的方式: java -jar ?-Dfile.encoding=utf-8 YourName.jar

比如: 打包命令使用utf-8編碼:

java -jar ?-Dfile.encoding=utf-8 項目包名字.jar


三.解決cmd格式下輸出亂碼:
可寫一個啟動bat,將start.bat改為java -jar ?-Dfile.encoding=utf-8 YourName.jar,問題就可以輕松解決。

如果還未解決,請修改cmd程序的編碼注冊表信息:

對于編譯出的程序,在 cmd 和 power shell 運行時都不能正確顯示漢字。?
網(wǎng)上查,可以再命令窗口修改:?
1、打開CMD.exe命令行窗口?
2、通過 chcp命令改變代碼頁,UTF-8的代碼頁為65001?
chcp 65001?
執(zhí)行該操作后,代碼頁就被變成UTF-8了。
在當(dāng)前窗口的確可以解決問題,但是重新打開的cmd窗口或者power shell 窗口仍然不能正確顯示漢字。

————————————————
版權(quán)聲明:本文為CSDN博主「魔都Thomas」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_42058242/article/details/114933003?文章來源地址http://www.zghlxwxcb.cn/news/detail-445526.html

到了這里,關(guān)于解決java在idea運行正常,但是打成jar包后中文亂碼問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • SpringBoot 打成jar包后如何獲取jar包Resouces下的文件

    獲取resouces下的文件使用以下代碼即可讀取,如果需要變成file傳入其他的方法中,需要創(chuàng)建臨時文件將輸入流文件 復(fù)制到 臨時文件中,并傳入相關(guān)方法,最后刪除臨時文件即可。不能通過ClassPathResouce對象直接獲取 文件File

    2024年02月19日
    瀏覽(19)
  • 在IDEA上運行成功,打包成jar包后,運行報錯,程序自動退出

    在IDEA上運行成功,打包成jar包后,運行報錯,程序自動退出

    ? ? ? ? java環(huán)境不正確,很有可能安裝了多個環(huán)境,導(dǎo)致程序加載了錯誤程序。 ? ? ? ? 嘗試修改環(huán)境變量,如果不行,建議刪除掉多余的java環(huán)境。 ???????? 注意:刪除掉多余的Java環(huán)境需要用程序刪除,直接刪除文件,容易刪不干凈。如下圖,可以打開程序與功能刪除

    2024年01月20日
    瀏覽(19)
  • SpringBoot項目打成jar包后,上傳的靜態(tài)資源(圖片等)如何存儲和訪問

    SpringBoot項目打成jar包后,上傳的靜態(tài)資源(圖片等)如何存儲和訪問

    使用springboot開發(fā)一個項目,開發(fā)文件上傳的時候,通常會將上傳的文件存儲到資源目錄下的static里面,然后在本地測試上傳文件功能沒有問題,但是將項目打成jar包放到服務(wù)器上運行的時候就會報錯,找不到對應(yīng)目錄。或者可以將上傳文件存儲到和jar包同級的目錄下,但是無

    2024年02月12日
    瀏覽(25)
  • 系列二十九、Spring Boot打成jar包后,resources目錄下的資源文件獲取不到

    ? ? ? ? 在做公司業(yè)務(wù)開發(fā)時,有一個地方是使用EasyExcel模板技術(shù)進(jìn)行文件上傳,測試環(huán)境是OK的,但是和前后端聯(lián)調(diào)驗證測試通過后,上傳到生產(chǎn)環(huán)境就不行了,后來也是花費了很多時間才找出其中的問題,以下為解決方案。 ?

    2024年02月02日
    瀏覽(30)
  • IDEA打成JAR包

    IDEA打成JAR包

    一、場景需求 ? 當(dāng)我們需要將Java項目文件轉(zhuǎn)為exe文件時,需要首先將Java項目文件打包成jar文件。這里我們以常用的Java開發(fā)IDE-IDEA為例,講解打包jar文件的具體步驟。 二、具體步驟 在項目代碼功能都測試無誤后,接下來進(jìn)行工程文件的打包。 菜單欄點擊File后,選擇Project

    2024年02月16日
    瀏覽(21)
  • vue3在運行時路由可以正常跳轉(zhuǎn),但是頁面空白,刷新頁面恢復(fù)正常[已解決]

    vue3在運行時路由可以正常跳轉(zhuǎn),但是頁面空白,刷新頁面恢復(fù)正常,在網(wǎng)上尋找很久說是keepAlive的原因,后來看了看我的代碼~ 原來的代碼: 改后的代碼: 由此可見,根元素一定要由一個div去包裹?。?template必須有且只能有一個div 在這樣才會正常顯示~ 原理: 這里我們要先

    2023年04月27日
    瀏覽(23)
  • Tomcat報404問題解決方案大全(包括tomcat可以正常運行但是報404)

    Tomcat報404問題解決方案大全(包括tomcat可以正常運行但是報404)

    文章概覽: 本文將解決一下問題: 問題有先后順序 Tomcat未配置環(huán)境變量 IIs訪問權(quán)限問題 端口占用問題 文件缺少問題(tomcat可以正常運行但是報錯404) 正確的運行框: 正確的網(wǎng)頁: 首先你要報個404玩玩; 這里怎么解決呢,將分為一下幾類: 根據(jù)這個問題可以參考作者之

    2024年02月03日
    瀏覽(28)
  • idea把項目打成jar包步驟詳解

    idea把項目打成jar包步驟詳解

    ? ? ? ? 最近產(chǎn)品需要預(yù)研一個小功能,開始后在本地開發(fā)測試好之后,需要打成jar提供出去,今天弄完了,決定把這個步驟記錄下來,便于以后輕車熟路。 ? ? ? ? 打成jar要有mian方法的入口,所以我們在代碼中需要定義一個main方法,然后通過這個main方法調(diào)用我們的核心邏

    2024年02月08日
    瀏覽(17)
  • idea正常安裝后,運行按鈕為灰色解決方法嘗試

    idea正常安裝后,運行按鈕為灰色解決方法嘗試

    ? ?如圖,問題為idea剛安裝好為右上角的運行按鈕為灰色,博主在經(jīng)過搜索以及詢問同學(xué)之后大概明白問題的原因 找不到要運行的函數(shù) 1導(dǎo)入文件后選中要運行的文件,如下圖左側(cè)所示(該圖片為正常情況,所以運行按鈕為綠色) ?2發(fā)現(xiàn)運行按鈕為灰色,這時找到選中文件中

    2024年02月12日
    瀏覽(20)
  • Java運行時jar時終端輸出的中文日志是亂碼

    Java運行時jar時終端輸出的中文日志是亂碼

    運行Jar時在控制臺輸出的中文日志全是亂碼,這是因為cmd/bash默認(rèn)的編碼是GBK,只要把cmd的編碼改成UTF-8即可 ?兩種方式修改:臨時修改和注冊表永久修改 只對當(dāng)前的cmd頁面有效,關(guān)閉后重新打開都會恢復(fù)成GBK, 打開cmd,輸入以下命令 這樣既可以更改cmd的編碼為UTF-8了。 以下

    2024年02月10日
    瀏覽(15)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包