macos Java乱码终极解决方案【Mac OS下Eclipse创建文件夹乱码,SVN更新文件乱码解决办法】

时间:2023-01-19 18:15:10

mac os  javac乱码

vi /etc/bashrc

最后一行加入 export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8

保存退出,source ./bashrc 

javac 正常


之前说过一个svn乱码的问题,详见:http://gogo1217.iteye.com/blog/1787568。

后来偶尔的情况下,知道maven也会有乱码情况,其实这都与Java读取文件采用的编码方式有关,当我们没有指定编码的时候,它会自动的以操作系统的编码方式去读取文件,当前这个编码可以被file.encoding设置覆盖。

因此我们只要指定Java的file.encoding参数就可以解决所有的乱码问题。

macos下:

Shell代码  macos Java乱码终极解决方案【Mac OS下Eclipse创建文件夹乱码,SVN更新文件乱码解决办法】
  1. vi ~/.bash_profile   
  2. 输入:export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8   
  3. :wq保存退出  
  4. source ~/.bash_profile  //立即生效  

 则在jdk1.7下 eclipse4.*也不会乱码,maven在jar时的中文文件名也不会乱码(工程以UTF-8编码的情况下)。

我们也可以给eclipse.ini设置上编码 -Dfile.encoding=UTF-8 。



先回顾下有关MacOS eclipse 乱码问题

 

1、Mac OS下Eclipse创建文件夹乱码,SVN更新文件乱码

     地址:http://gogo1217.iteye.com/blog/1787568。

     文中提到的解决办法是将JDK1.7 回退到1.6,问题解决;后来翻帖子,有人说讲eclipse回退到3.7问题也解决;但不管是那种办法,都不是我们版本控的作风。

 

2、macos Java乱码终极解决方案【Mac OS下Eclipse创建文件夹乱码,SVN更新文件乱码解决办法】

    地址:http://gogo1217.iteye.com/blog/1850899。

    文中提到添加环境变量:export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8 ,但是该方法只能在Shell中启动eclipse才能识别该设置,并能生效;而在DOCK启动eclispe则无法使用该变量设置。

 

3、MaOS删除JAVA6后安装JAVA7,启动eclipse提示安装JRE6

     地址:http://gogo1217.iteye.com/blog/1858326

     文中提到了MacOS 10.8.3中 安装JDK1.7,eclipse启动问题的解决办法。

 

那到底怎么解决eclipse新建文件夹乱码,svn更新乱码(原因:创建文件夹乱码)的问题呢?

a. 网上有人说修改 /.MacOSX/environment.plist,但这个早已经废弃,在10.8版本中铁定不支持。

b. 有人说修改 XX.app/Contents/Info.plist,经过尝试,这个靠谱,可参考

      http://www.2cto.com/os/201304/205820.html

      http://qing.blog.sina.com.cn/tj/62de843e33002hwz.html

 

现在分享下我的解决步骤:

 1、修改eclipse.app/Contents/Info.plist,添加以下代码

Xml代码  macos Java乱码终极解决方案【Mac OS下Eclipse创建文件夹乱码,SVN更新文件乱码解决办法】
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">  
  3. <plist version="1.0">  
  4. <dict>  
  5.     <key>LSEnvironment</key>  
  6.     <dict>  
  7.         <key>JAVA_TOOL_OPTIONS</key>  
  8.         <string>-Dfile.encoding=UTF-8</string>  
  9.         <key>LANG</key>  
  10.         <string>zh_CN.UTF-8</string>  
  11.           
  12.     </dict>  

 添加完效果如图所示:

 macos Java乱码终极解决方案【Mac OS下Eclipse创建文件夹乱码,SVN更新文件乱码解决办法】

2、修改eclipse.app/Contents/MacOS/eclipse.ini,添加 -Dfile.encoding=UTF-8

3、关闭eclipse,重新启动。

4、如果不生效,执行命令(方法来源于:http://www.2cto.com/os/201304/205820.html):

 

Java代码  macos Java乱码终极解决方案【Mac OS下Eclipse创建文件夹乱码,SVN更新文件乱码解决办法】
  1. /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f /Applications/eclipse/eclipse.app  
 5、如果不生效,将/Applications/eclipse改名为其它名字,再次启动(方法来源于:http://qing.blog.sina.com.cn/tj/62de843e33002hwz.html)