1 影响类名的读取
设置 -Dsun.jnu.encoding=gbk
public class 中文 { public static void main(String[] args) throws Exception { } } //这个会运行报错: Exception in thread "main" java.lang.ClassNotFoundException: com.涓枃 at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:264) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:122)
2 影响Main方法参数的读取
设置 -Dsun.jnu.encoding=gbk main方法的运行参数:中文
public class Test { public static void main(String[] args) { System.out.println(args[0]); } } //运行结果:涓枃
有资料说是会影响系统变量的读取,实际上在我的mac是不会的
-Dsun.jnu.encoding=gbk -Dtest=中文 ,设置系统的环境变量:test=中文
public static void main(String[] args) throws Exception{ System.out.println(System.getProperties().getProperty("test")); System.out.println(System.getenv().get("test")); }
有人说会影响文件名,时间是在我的mac上是不会的,可能用这个代码自己试试,https://gist.github.com/happygiraffe/1456701
除了-Dsun.jnu.encoding=强制设置,在哪里读取的默认呢;就是系统的LANG环境变量
echo $LANG 我的mac上的结果是 zh_CN.UTF-8