Sublime Text 展現輕量、啟動快的優勢,透過 Build System 即可一鍵編譯執行 Java。本文針對 macOS (含 Apple Silicon) 環境,說明完整設定步驟、常見問題與進階技巧。
brew install openjdk@17 或下載 Eclipse Temurinjava -version、javac -version 正常輸出JavaRun.sublime-build (放在 User 套件目錄):{
"selector": "source.java",
"working_dir": "$file_path",
"cmd": ["bash", "-c", "javac \"$file_name\" && java \"$file_base_name\""],
"variants": [
{
"name": "Run with Input",
"cmd": ["bash", "-c", "javac \"$file_name\" && java \"$file_base_name\" < \"$file_path/input.txt\""]
},
{
"name": "Compile Only",
"cmd": ["javac", "$file_name"]
}
]
}
.java 檔,按 ⌘B 編譯執行,⌘⇧B 選擇變體{
"selector": "source.java",
"working_dir": "$file_path",
"cmd": ["osascript", "-e", "tell application \"Terminal\" to do script \"cd '$file_path' && javac '$file_name' && java '$file_base_name'; echo 'Press any key to exit...'; read -n 1\""],
"shell": false
}
優點:獨立終端機視窗,支援 Scanner(System.in) 互動輸入。缺點:會開啟新視窗,較慢。
{
"selector": "source.java",
"working_dir": "$file_path",
"cmd": ["osascript", "-e", "tell application \"iTerm2\" to create window with default profile command \"cd '$file_path' && javac '$file_name' && java '$file_base_name'; read -n 1\""]
}
| 變數 | 意義 | 範例 |
|---|---|---|
| $file | 完整檔案路徑 | /Users/name/Project/Main.java |
| $file_path | 檔案所在目錄 | /Users/name/Project |
| $file_name | 含副檔名檔名 | Main.java |
| $file_base_name | 不含副檔名檔名 | Main |
| $packages | Sublime Packages 目錄 | /Users/name/Library/Application Support/Sublime Text/Packages |
| 錯誤現象 | 原因 | 解決 |
|---|---|---|
| javac: command not found | JDK 未加入 PATH | 編輯 ~/.zprofile 加入 export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH" |
| Error: Could not find or load main class | 類別名與檔名不符、package 問題 | 確保 public class 名稱 = 檔名;若有 package 需在 src 根目錄編譯 |
| 中文亂碼 | 終端機編碼非 UTF-8 | Terminal 偏好設定 → 文字編碼選 Unicode (UTF-8);或在 Build 加入 -Dfile.encoding=UTF-8 |
| 權限被拒絕 | 檔案鎖定或目錄權限 | chmod +x 目錄、關閉其他編輯器 |