起因':
看魔乐视频学习Java,有一些源码直接粘贴到Eclipse中显示乱码,其时Windows下的GBK2312,Ubuntu并不支持.而且Eclipse太大了,杀鸡不用牛刀,遂决定用sublime来配置java的简单编译环境.
一 首先解决的是sublime打开这个java文件显示的乱码问题
经过百度,得到以下的结论:
由于 Linux 和 Unix 都不支持 GBK 和 GB2312 的中文编码,所以遇见乱码是在所难免的。毕竟,又不能强迫大家都是用 英文 书写。这时候,各种插件就派上用场了。 好在 Sublime Text 有非常丰富的开源插件,帮忙解决很多日常问题。针对不同的平台,相应的插件可能存在差异。一般安装对应的插件即可。解决办法:
A:安装 ConvertToUTF8 插件:Sublime Text 默认是不支持中文编码的,所以需要手工安装 ConvertToUTF8 插件,便可以正常的支持中文输入了。
步骤:先打开Sublime Tetx 3的Package Control(快捷键CTRL+SHIFT+P),进入Install Package功能,安装ConverToUTF8插件,如对ST的Package功能熟悉的可以参考这个介绍:点击打开链接
安装以后报错如下:
Encoding: GB2312
Error: Codecs missing Please install Codecs33 plugin 感谢(https://github.com/seanliang/Codecs33/tree/osx).
B:安装GB2312 插件:还要支持 Windows 平台默认的 GB2312 中文编码,那么需要安装 Codecs33 插件
ps:这里安装codecs33也是需要先进入install package之后,才能检索的到.在这耽搁了好一会,以为直接在package control里面可以安装.
二.总算成功解决了乱码的问题,接下来百度了ST Java环境的配置,参考这篇文章:点击打开链接
主要步骤如下:
1.创建文件 runJava.sh ,写入下面代码
[ -f "$1.class" ] && rm $1.class for file in $1.java do echo "Compiling $file........" javac $file done if [ -f "$1.class" ] then echo "-----------OUTPUT-----------" java $1 else echo " " fi将这个文件复制到JDK的bin目录下;
→ Note: 如果你想编译所有的java文件,需要把第二行中的 $1.java 替换成 *.java
在移动完之后要设置文件的可执行权限为755,以确保此文件是可执行的;
$sudo chmod 755 runJava.sh
A在执行以上的过程中,又忘记了自己的jdk装在哪里,用whereis java命令得知时在usr/bin下面,因此也是切到此目录下面去touch了一个runJava.sh的文件,
但是在vi的过程中提示不可写入,幸亏还记得linux下的一点点的文件权限的知识,ls -l显示所有的权限以后用chmod +w 给加上了可写权限.成功保存.
B果不其然又报错了,因为在terminal下用javac编译这个java文件已经报了编码映射的错误,百度参考了一下这个帖子:点击打开链接
Linux下为UTF-8编码,javac编译gbk编码的java文件时,容易出现“错误: 编码UTF8的不可映射字符”
解决方法是添加encoding 参数:javac -encoding gbk WordCount.java
截图如下(此截图工具时在Ubuntu应用商店:搜索gnome-screenshot)
后记:关于sublimetext3的配置,几年前就折腾过一次,但是配置文件搞丢了以后这些东西就会需要花费大量的时间去配置,其实时得不偿失的,应该将其记录下来,将配置文件备份.
其他ubuntu设置应该也可一键迁移.
在WIN10环境下配置也大同小异,唯一不同的是不需要安装codecs33这插件,发现控制台不能输出中文以后,百度了
新建一个自己的myjavac编译系统,应该是支持GBK的话就能输出中文。
{
"shell_cmd": "runJava.bat \"$file\"",
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"selector": "source.java",
"encoding": "GBK"
}