请看以下完整攻略:
Java Cmd运行Jar出现乱码的解决方案
很多Java程序员在用cmd运行jar包时,都会遇到乱码的问题。这主要是因为cmd默认编码是GBK而不是UTF-8,而jar包中的资源文件往往是UTF-8编码的。本文就为大家介绍几种解决方案。
方案一:修改Cmd编码为UTF-8
这种方式比较简单,只需要在cmd输入以下命令:
chcp 65001
这个命令可以将cmd编码修改为UTF-8,再运行jar包就不会乱码了。
方案二:使用Java参数设置编码
这种方式需要在调用java命令时加入-Dfile.encoding
参数,指定编码类型。例如,我们要运行Test.jar包,将编码设置为UTF-8,命令如下:
java -Dfile.encoding=UTF-8 -jar Test.jar
这样就可以保证资源文件的编码一致,不会出现乱码。
示例一:中文文件名乱码
假设我们有一个Test.jar包,里面包含以下文件:
.
├── Test.jar
└── 测试.txt
其中测试.txt文件是UTF-8编码的,文件名是中文。
我们可以使用方案二的方式运行这个jar包,命令如下:
java -Dfile.encoding=UTF-8 -jar Test.jar
这样,在cmd中就可以正确显示中文文件名和文件内容了。
示例二:读取文件内容乱码
假设我们有一个Test.jar包,里面包含以下文件:
.
├── Test.jar
└── Message.properties
其中Message.properties文件是UTF-8编码的,内容是:
hello=你好
我们可以写一个测试程序来读取这个文件,并输出里面的内容:
import java.io.IOException;
import java.util.Properties;
public class Test {
public static void main(String[] args) throws IOException {
Properties properties = new Properties();
properties.load(Test.class.getResourceAsStream("/Message.properties"));
System.out.println(properties.getProperty("hello"));
}
}
如果我们直接运行这个程序,结果很可能会出现乱码。这时我们可以使用方案二的方式运行这个jar包,命令如下:
java -Dfile.encoding=UTF-8 -jar Test.jar
这样,在cmd中就可以正确输出中文内容了。
结语
以上就是在Java Cmd运行Jar出现乱码的解决方案。希望本文可以帮助大家解决相关问题。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java Cmd运行Jar出现乱码的解决方案 - Python技术站