`

java的sun.jnu.encoding有什么用

阅读更多
目前看到的影响有两个:影响类名的读取和Main方法参数的读取。

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
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics