Sublime Text 3 配置Java開發
內嵌模式
在Sublime內部輸出面板顯示執行過程
配置JavaC - INSET.sublime-build
-
打開Sublime的包目錄(選擇菜單:
Perferences > Browse Packages),進入User文件夾, -
新建文件
JavaC - INSET.sublime-build:{ "cmd": ["C:/Users/AA/AppData/Roaming/Sublime Text 3/Packages/User/JavaC - INSET.cmd", "$file"], "file_regex": "^(...*?):([0-9]*):?([0-9]*)", "selector": "source.java", "shell": true, // Windows 中文版支持的編碼格式是GBK,這條配置是通知Sublime Text 2以系統環境的編碼格式輸出,如果不加這一條配置,在編譯運行時就會提示Decode error - output not utf-8錯誤 "encoding":"GBK" }
### 配置JavaC - INSET.cmd
1. 在User文件夾(`C:/Users/final/AppData/Roaming/Sublime Text 3/Packages/User/`)
新建`JavaC - INSET.cmd`:
```batch
@ECHO OFF
cd %~dp1
ECHO Compiling %~nx1...
IF EXIST %~n1.class (
DEL %~n1.class
)
rem javac %~nx1
rem javac -encoding GBK %~nx1
javac -encoding UTF-8 -d . %~nx1
IF EXIST %~n1.class (
ECHO ^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>
rem ECHO.
java %~n1
rem ECHO.
ECHO ^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>^>
)
```
### 配置默認編譯系統JavaC - INSET
1. 選擇菜單:`Tools > Build System > JavaC - INSET`。

### 測試配置結果
1. 新建`Demo.java`:
```java
public class Demo {
public static void main(String[] args) {
System.out.println("This is my test program.");
int a = 10;
int b = 30;
int c = a + b;
System.out.println("結果 Result : " + c);
}
}
```
2. 編譯&運行
按<kbd>Ctrl+B</kbd>/<kbd>Ctrl+Shift+B</kbd>,進行編譯並執行程序。

## 外調模式
在Sublime外部調用系統控制台顯示執行過程
### 配置JavaC - OUTSET.sublime-build
1. 打開Sublime的包目錄(選擇菜單:`Perferences > Browse Packages`),進入`User`文件夾,
2. 新建文件`JavaC - OUTSET.sublime-build`:
```json
{
// 命令和參數,未指定路徑則在PATH環境變量中找
"cmd": ["javac","-encoding","UTF-8","-d",".","$file"],
// 可選。獲取cmd的錯誤輸出
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
// 可選。`工具`菜單中`編譯`為`自動`時生效
"selector": "source.java",
// 可選。輸出"cmd"的編碼。必須是合法的Python編碼,缺省為"UTF-8"
"encoding":"UTF-8",
// variants 可選。用來替代主構建系統的備選。如果構建系統的"selector"與激活的文件匹配,變量"name"則會出現在 Command Palette 中。
"variants":
[
{
// 僅在"variants"中是合法的 (詳見 variants)。用來標識系統中不同的構建系統。如果"name"是"Run" ,則會顯示在Tools | Build System 菜單下,並且可以使用Ctrl + Shift + B調用
"name": "Run",
// 可選。如果該選項為"true" ,"cmd"則可以通過shell運行。
"shell": true,
"cmd" : ["start","cmd","/c", "java ${file_base_name} &echo. & pause"],
// /c是執行完命令后關閉cmd窗口,
// /k是執行完命令后不關閉cmd窗口。
// echo. 相當於輸入一個回車
// pause命令使cmd窗口按任意鍵后才關閉
// 可選。在運行首行的"cmd"前會切換到該目錄。運行結束后會切換到原來的目錄。
"working_dir": "${file_path}",
"encoding":"UTF-8"
}
]
// 還有:
// line_regex 可選。當"cmd"的錯誤輸出中,file_regex與該行不匹配,如果line_regex存在,並且確實與當前行匹配, 則遍歷整個緩沖區,直到與file regex匹配的行出現,並用這兩個匹配決定最終要跳轉的文件或行。
// target 可選。運行的Sublime Text命令,缺省為"exec" (Packages/Default/exec.py)。該命令從 .build-system中獲取配置數據。用來替代缺省的構建系統命令。注意,如果你希望替代構建系統的缺省命令,請在.sublime-build 文件中專門設置。
// env 可選。在環境變量被傳遞給"cmd"前,將他們封裝成詞典。
// path 可選。該選項可以在調用"cmd"前替換當前進程的PATH 。原來的 PATH 將在運行后恢復。使用這個選項可以在不修改系統設置的前提下將目錄添加到 PATH 中。
}
```
### 配置默認編譯系統JavaC - OUTSET
1. 選擇菜單:`Tools > Build System > JavaC - OUTSET`。
### 測試配置結果
1. 新建`Demo.java`:
```java
public class Demo {
public static void main(String[] args) {
System.out.println("This is my test program.");
int a = 10;
int b = 30;
int c = a + b;
System.out.println("結果 Result: " + c);
}
}
```
2. 編譯&運行
+ 編譯
按<kbd>Ctrl+Shift+B</kbd>,選中`JavaC - OUTSET`進行編譯;

+ 運行
按<kbd>Ctrl+Shift+B</kbd>,選中`JavaC - OUTSET - Run`執行程序。

## 附錄
### Demo - HelloJava8
```java
import java.util.*;
public class HelloJava8 {
public static void main(String[] args) {
List<String> names = Arrays.asList("春", "夏", "秋", "冬");
names.stream()
.filter(name -> name.length() >= 5)
.forEach(name -> System.out.println(name));
}
}
搭建AutoHotkey開發環境
安裝AutoHotKey插件
按Ctrl+Shift+P,輸入pci后回車,選中AutoHotKey進行安裝。
配置AutoHotKey插件
- 打開Sublime的包目錄(選擇菜單:
Perferences > Browse Packages),進入AutoHotkey文件夾,閱讀README.md。 - 根據
Advanced Configuration這一節介紹進行配置:
選擇Preferences > Package Settings > AutoHotkey > AutoHotkey Settings - User。
建議拷貝AutoHotkey Settings - Default內容到AutoHotkey Settings - User,進行更改配置AutoHotkey/Ahk2Exe/幫助文檔的路徑。
最終AutoHotkey Settings - User(C:\Users\final\AppData\Roaming\Sublime Text 3\Packages\User\AutoHotkey.sublime-settings)的內容如下:{ // Set here path to AutoHotkey.exe executable to use for the build and ahkrunpiped command. // AutoHotKeyExePath and Ahk2ExePath are a list of string paths - starting from the beginning of the list if a path is not found then the subsequent path will be attempted. "word_separators": "./\\()\"'-:,.;<>~!@#$^&*|+=[]{}`~?", "AutoHotKeyExePath": [ "D:\\programmer\\util\\AHK\\AutoHotkey.exe" ], "Ahk2ExePath": [ "D:\\programmer\\util\\AHK\\Compiler\\Ahk2Exe.exe" ], "AhkHelpPath": [ "D:\\programmer\\util\\AHK\\AutoHotkey.chm" ] }
配置默認編譯系統AutoHotKey
- 選擇菜單:
Tools > Build System > AutoHotKey。
測試配置結果
-
新建
HelloWorld.ahk:MsgBox, ,TEST, Hello World在編輯文件時,選中
MsgBox文本/光標放在MsgBox文本中,- 按F1,會跳往CHM幫助文檔的
MsgBox章節; - 按Ctrl+Alt+H,會彈出
MsgBox的函數參數提示。
- 按F1,會跳往CHM幫助文檔的
-
編譯&運行
按Ctrl+B/Ctrl+Shift+B,進行編譯並執行程序。

參考
https://www.zybuluo.com/king/note/47271
http://zhuanlan.zhihu.com/p/19745335
