天天看点

Sublime Text 配置 Java 环境Java 的安装Sublime Text 构建系统

本文给出了本人在使用 Sublime Text 配置 Java 环境的记录。主要为了解决中文乱码的问题以及 Sublime Text 默认的输出窗口无法进行输入的问题。

注意:本文默认在 Windows 系统下,Sublime Text 版本为 4(及以上)。对于 Mac 和 Linux 系统几乎没有什么不同,此外,本文也同样适用于 Sublime Text 3。

Java 的安装

首先我们需要安装 Java,Java 当前是 Oracle 公司的产品,我们可以去 Oracle 官网下载。在该网站的 Products 里选择 Java,然后选择对应的版本,下载安装即可。一般来说,安装的过程中可将 Java 添加到系统环境变量

Path

里。我们最终要确保,通过

Win+R

打开

cmd

,输入

javac

java

,都能被正确地执行。

Sublime Text 构建系统

关于 Sublime Text 构建系统的详细内容,请参见本人的另一篇文章:

Sublime Text 构建系统 - 学习整理

打开 Sublime Text,按照

Tools | Build System | New Build System...

新建一个

.sublime-build

文件。这个文件可以任意起一个名字,如

Java.sublime-build

,我们将使用这个文件来自定义构建系统。一般把这个文件保存在用户目录的 Packages 文件夹或其子目录下(即

path\to\your\username\AppData\Roaming\Sublime Text\Packages

或其子目录下)。

对于 Java 我们主要使用以下两个命令:

javac

java

javac

后面跟着

.java

文件的文件名(也就是源代码文件的文件名),该命令将 java 源文件编译成

.class

字节码文件(该字节码文件可以在任何实现了 Java 平台的系统上运行,这也是 Java 可移植性强的重要原因)。

java

后面跟着 java 文件中的类名,也就是说,

java

命令运行了编译好的

.class

字节码文件(由于类名必须是文件名的缘故)。

我们依旧先参考一下 Sublime Text 自带的 Java 的构建系统,路径为 Sublime Text 安装路径下的 Packages 文件夹,在里面我们可以找到

Java.sublime-package

,这就是 Sublime Text 自带的 Java 包。

这个

.sublime-package

文件实际上就是一个 zip 压缩包,我们把它复制到其他位置并重命名为

Java.zip

,打开压缩包我们寻找其中的

.sublime-build

文件,根据

javac

java

这两个命令,我们感兴趣的文件就是

JavaC.sublime-build

。该文件的内容如下:

JavaC.sublime-build:

{
	"shell_cmd": "javac \"$file\"",
	"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
	"selector": "source.java"
}
           

可以看到这个自带的 Java 构建系统做了编译这么一件事,但是还没怎么做好——当我编译出错或者源代码中出现一些中文时,报错信息中的中文就会乱码。考虑到 Java 的编译和运行过程(从执行命令的角度来看)和 C/C++ 有很大的相似性,不妨按照之前配置 C/C++ 的思路,把配置略改一番。

之前配置 C/C++ 的思路参见:Sublime Text 配置 C/C++ 编译环境与中文乱码的解决

这里,我们直接把最终的自定义

.sublime-build

文件的内容给出,如下:

{
    "shell_cmd": "javac -encoding UTF-8 \"${file_name}\" && start cmd /c \"java \"${file_base_name}\" & pause\"",
    "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
    "working_dir": "${file_path}",
    "selector": "source.java",
    "encoding": "gbk",
    "variants":
    [
        {
            "name": "Single File Build",
            "shell_cmd": "javac -encoding UTF-8 \"${file_name}\""
        },
        {
            "name": "Single File Run",
            "shell_cmd": "start cmd /c \"java \"${file_base_name}\" & pause\""
        },
        {
            "name": "Single File Build & Run",
            "shell_cmd": "javac -encoding UTF-8 \"${file_name}\" && start cmd /c \"java \"${file_base_name}\" & pause\""
        },
        {
            "name": "Multiple Files Build",
            "shell_cmd": "javac -encoding UTF-8 *.java"
        },
        {
            "name": "Multiple Files Run",
            "shell_cmd": "start cmd /c \"java \"${file_base_name}\" & pause\""
        },
        {
            "name": "Multiple Files Build & Run",
            "shell_cmd": "javac -encoding UTF-8 *.java && start cmd /c \"java \"${file_base_name}\" & pause\""
        }
    ]
}
           

现在我们对此进行解释。

Build

即为编译,

Run

即为运行。

编译用的是

javac

命令,这里

javac

命令我们加上参数

-encoding UTF-8

来表示源文件的编码,从而解决源文件内中文引起的中文乱码问题,另外

"encoding": "gbk"

选项解决了报错信息内的中文乱码问题。

运行用的是

java

命令,这里我们用 cmd 来执行

java

命令是为了能够让 java 程序读取键盘输入。如果没有从键盘输入的需求,我们可以省略

start cmd /c

& pause

这两段代码。

注意,我们将写好的

.sublime-build

文件保存在用户目录的 Packages 文件夹或其子目录下(即

path\to\your\username\AppData\Roaming\Sublime Text\Packages

或其子目录下)。直接修改 Sublime Text 安装目录的 Packages 目录下的文件是徒劳的,因为它们是只读文件,每次启动 Sublime Text 都会重置这些文件。

通过按快捷键

Ctrl+Shift+B

选择构建系统,我们将会看到自己写的 Java 构建系统配置被一一列出,选择即可。每一次选择后,Sublime Text 都会记住当前的选择,下一次按

Ctrl+B

的时候就会自动执行该选择。