首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

自各儿解决:一个Eclipse3.2和MyEclipse6.5运行结果不一样的程序

2012-12-27 
自己解决:一个Eclipse3.2和MyEclipse6.5运行结果不一样的程序!分别在MyEclipse6.5和Eclipse3.2中打印Syste

自己解决:一个Eclipse3.2和MyEclipse6.5运行结果不一样的程序!
   分别在MyEclipse6.5和Eclipse3.2中打印

System.out.println(Charset.defaultCharset().name());
   发现了不同点:
   MyEclipse6.5的输出为GBK,Eclipse3.2的输出为UTF-8
   若将Eclipse3.2的工程编码或者文件编码修改为GBK,则打印结果为GBK
   而MyEclipse6.5无论怎么修改,打印结果总是GBK。
   说明:
   Eclipse3.2在启动Java虚拟机的时候修改了JVM默认的编码,修改为和文件的编码一致。
   MyEclipse6.5在启动Java虚拟机的时候没有修改JVM默认的编码,始终读取操作系统的编码GBK。
   另:测试了MyEclipse8,也会修改JVM默认的编码,修改为和文件编码一致。

    PS:如果在Eclipse3.2中有两个Java文件,一个为GBK,一个为UTF-8,那么就要看是从哪个Java文件启动的Java虚拟机(即:哪个文件包含main方法),运行环境的编码会采用包含main方法的文件的编码。


   至于Eclipse3.2是如何修改了JVM的默认编码的呢?是这样的:

在命令行下输入:Java Test.java    运行以下程序
import java.nio.charset.Charset;public class Test {public static void main(String[] args) {System.out.println(Charset.defaultCharset().name());}}
打印结果是:GBK

在命令行下输入:java -Dfile.encoding=UTF-8 Test
打印结果是:UTF-8

显然,通过添加JVM启动参数:-Dfile.encoding=UTF-8,便可以修改JVM的环境编码为UTF-8

热点排行