上 Java 课, 没打算用IDE, Sublime 永远的神!!!
在 Sublime 里写 Java 是可以通过自带的编译系统进行编译的, 但由于 Java 编译以后不会运行, 所以主要任务就是让编译以后运行.
- 打开
Sublime Text 3
的安装目录, 找到Package
目录下的Java.sublime-package
, 用压缩文件打开, 编辑JavaC.sublime-build
为:
{
"shell_cmd": "runJava.bat \"$file\"",
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"selector": "source.java",
"encoding": "GBK"
}
其中GBK编码主要用来显示英文, UTF-8挂了, 不知道为什么,
对比原来的文件命令, 之前是 javac [file]
编译, 然后就结束了.
这里重新写一个批处理文件, 实现编译并运行的功能即可.
- 在 JDK 目录的
bin
目录下, 新建批处理文件runJava.bat
:
@echo off
cd %~dp1
echo Compiling %~nx1......
if exist %~n1.class (
del %~n1.class
)
javac %~nx1
if exist %~n1.class (
echo ------Output------
java %~n1
)
可以看到, 代码的意思是先删除存在的.class
, 再编译, 最后运行. 这样就实现了我们想要的效果.
但是这个并不能交互输入, 只有输出.
想要输入的话, 可以考虑 REPL?
或者新建一个build
处理文件, 打开命令行运行, 就和之前配置的C++一样.
{
"cmd": ["javac", "-encoding", "UTF-8", "-d", ".", "$file"],
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"selector": "source.java",
"encoding": "GBK",
"variants": [{
"name": "Run",
"shell": true,
"cmd": ["start", "cmd", "/c", "java ${file_base_name} &echo. & pause"],
"working_dir": "${file_path}",
"encoding": "GBK"
}]
}
也是先编译再运行, 只不过运行的时候开了cmd.
和其他编译一样, Ctrl
+ Shift
+ B
选择编译选项, Ctrl
+ B
执行上一个已执行的编译选项.