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下:
- vi ~/.bash_profile
- 输入:export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8
- :wq保存退出
- 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 version="1.0" encoding="UTF-8"?>
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
- <plist version="1.0">
- <dict>
- <key>LSEnvironment</key>
- <dict>
- <key>JAVA_TOOL_OPTIONS</key>
- <string>-Dfile.encoding=UTF-8</string>
- <key>LANG</key>
- <string>zh_CN.UTF-8</string>
- </dict>
添加完效果如图所示:
2、修改eclipse.app/Contents/MacOS/eclipse.ini,添加 -Dfile.encoding=UTF-8
3、关闭eclipse,重新启动。
4、如果不生效,执行命令(方法来源于:http://www.2cto.com/os/201304/205820.html):
- /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f /Applications/eclipse/eclipse.app