Bruce_Zhu 于 2016.11.2
自主原創(chuàng)
如何在Sublime Text 3下運行Java拾积?
----------注:此blog所涉解決方法僅適用于Windows下Sublime Text 3所產(chǎn)生的問題
說在最前
博主在使用Sublime T3學(xué)習Web前端之后颇玷,感覺到了Sublime的強大,于是想拋棄碩大繁瑣的MyEclipse來撿回以前學(xué)習的Java用來Android開發(fā)荠医,但是我發(fā)現(xiàn)利用Sublime本身自帶的Javac編譯系統(tǒng)并不能有效地運行.java的文件,那么博主就開始找各種方法解決桑涎。費經(jīng)周折彬向,博主終于解決了這一個擾人的問題。那么首先攻冷,我們先來一次Sublime T3需要運行Java的正確的配置方法吧娃胆!-
Sublime Text 3下Java運行環(huán)境配置
第一步 —— 必備文件之一:runJava.bat
首先,我們新建一個空白文本文檔等曼,Ctrl + C以下代碼:
<pre>
@ECHO OFF
cd %~dp1
ECHO Compiling %~nx1.......
IF EXIST %~n1.class (
DEL %~n1.class
)
javac -encoding UTF-8 %~nx1
IF EXIST %~n1.class (
ECHO -----------OUTPUT-----------
java %~n1
)
</pre>
將以上代碼Ctrl + V后里烦,再將文本文檔名“新建文本文檔.txt”更名為“runJava.bat”凿蒜,然后放入你自己電腦的JDK文件中的bin文件夾下。
如何看自己電腦的JDK目錄胁黑?
--- a.右擊"我的電腦"废封,打開“屬性”,點擊里面的“高級系統(tǒng)設(shè)置”
我的電腦“屬性”
--- b.在“高級系統(tǒng)設(shè)置”里面打開“高級”目錄下的“環(huán)境變量”
高級系統(tǒng)設(shè)置
--- c.在下方“系統(tǒng)變量”里找到“JAVA_HOME”丧蘸,雙擊打開即可看到路徑
環(huán)境變量
注:如果你安裝的是JRE的話漂洋,同樣適用,只是JRE是Java的運行環(huán)境力喷,而JDK是Java的開發(fā)環(huán)境刽漂,JDK向下包含JRE
在知道了自己JDK路徑之后,將runJava.bat放入到JDK路徑的bin文件夾下
bin文件夾
第二步 —— 必備文件之二:JavaC.sublime-build
JavaC.sublime-build這個文件是在Sublime T3安裝目錄下的弟孟,但是你會發(fā)現(xiàn)你并不能搜索到它爽冕,因為JavaC.sublime-build被包含在了:
(你電腦上Sublime T3的安裝目錄)\Packages\Java.sublime-package中
Java.sublime-package其實是一個.zip格式的壓縮包,你把它更名為Java.sublime-package.zip就可以解壓看到里面的JavaC.sublime-build文件了披蕉。注意!更名時千萬不要把后綴改成.rar或者其他壓縮格式后綴乌奇,否則會出錯没讲!
更改了后綴以后把它移出來,放在主路徑礁苗,然后解壓縮:
Java.sublime-package
在Java.sublime-package的文件夾里面我們就可以找到JavaC.sublime-build文件了爬凑,我們用Sublime或者記事本打開,就可以看到里面的內(nèi)容了:
JavaC.sublime-build源文件
現(xiàn)在试伙,我們將一下代碼Ctrl + C一下嘁信,或者局部更改:
<pre>
{
"shell_cmd": "runJava.bat "$file"",
"file_regex": "^(...?):([0-9]):?([0-9])",
"selector": "source.java",
"encoding": "GBK"
}
</pre>
更改后Ctrl + S保存,然后全選中Java.sublime-package文件夾中的文件:
Java.sublime-package文件夾
右擊任意文件疏叨,左擊“添加至壓縮文件”潘靖,然后壓縮格式選擇.zip格式,否則后續(xù)步驟會報錯**:
壓縮格式
再將Java.sublime-package.zip放入Packages文件夾中蚤蔓,并將.zip后綴刪去:
刪去.zip后綴
點擊“是(Y)”
第三步 —— 打開Sublime T3檢驗
隨便輸入一個Java程序卦溢,然后按住Ctrl + B或者菜單欄中“工具”->“立即編譯”:
Java程序測試 問題的產(chǎn)生
對于Sublime運行不了Java的問題有很多種,除去Sublime本身編譯系統(tǒng)的問題可以用runJava.bat的方法解決外秀又,下面博主就根據(jù)自己親身經(jīng)歷過的和搜索時別人遇到過的問題進行一個匯總单寂。-
第一類 —— “Decode error”系列
看得懂英文的人都能知道這是解碼的問題,問題的提示包括以下圖中若干相同的類型:
Decode error - output not utf-8
Decode error - output not GBK
這個編碼的問題比較繁瑣吐辙,但是簡而言之就是修改文件中的編碼宣决,讓我們回到最開始兩個需要修改的文件代碼中:
<pre>
@ECHO OFF
cd %~dp1
ECHO Compiling %~nx1.......
IF EXIST %~n1.class (
DEL %~n1.class
)
javac -encoding UTF-8 %~nx1
IF EXIST %~n1.class (
ECHO -----------OUTPUT-----------
java %~n1
)
</pre>
runJava.bat文件中的代碼 ↑
<pre>
{
"shell_cmd": "runJava.bat "$file"",
"file_regex": "^(...?):([0-9]):?([0-9]*)",
"selector": "source.java",
"encoding": "GBK"
}
</pre>
JavaC.sublime-build文件中的代碼 ↑
這兩個文件中都有可以更改碼制的地方:
runJava.bat文件中的第7行
<pre>
javac -encoding UTF-8 %~nx1
</pre>
這里的碼制“-encoding UTF-8”是編碼制式,這里通過UTF-8碼制來編碼
JavaC.sublime-build文件中的第5行
<pre>
"encoding": "GBK"
</pre>
這里的碼制“ 'encoding': 'GBK' ”也是編碼制式昏苏,這里通過GBK碼制來編碼
那么如果遇到的是“Decode error”的問題尊沸,就要從編碼解碼的方式入手我們可以修改這兩處的編碼制式來檢測(博主能力有限威沫,不知道編碼制式該如何查看),一般常用的中文簡體編碼制式有:“GBK”椒丧、“UTF-8”壹甥、“cp936”等。
其實最簡單的方法壶熏,就是可以試一試博主所設(shè)置的編碼制式畢竟博主的Sublime T3是可以運行的句柠,并沒有出現(xiàn)編碼的錯誤。
如果編碼問題還是得不到解決棒假,那么請找找神奇的度娘吧溯职! -
第二類 —— “javac: 無源文件”系列問題
此類問題大致包含兩種,一種是編譯器提示:javac: 無源文件帽哑;
javac:無源文件
另一種是如圖所示的問題:
javac <options> <source files>
其實這類問題的產(chǎn)生只能怪我們自己粗心了谜酒,這類問題的根本原因就是我們沒有保存.java文件,如果你將你現(xiàn)在的.java文件Ctrl + S保存一下妻枕,你就會發(fā)現(xiàn)編譯通過了僻族。 -
第三類 —— “類#是公共的,應(yīng)在名為#.java的文件中聲明”問題
問題的產(chǎn)生如圖所示:
類#是公共的屡谐,應(yīng)在名為#.java的文件中聲明
編譯器提示“類#是公共的述么,應(yīng)在名為#.java的文件中聲明”,這其實就是說明我們在定義一個公共類名的時候愕掏,需要與我們保存的.java文件名保持相同,如圖中我的.java名為NewTest1.java饵撑,然而我定義的公共類名為Hello滑潘,所以才會產(chǎn)生這一個的問題语卤。
其實這一點怪博主的粗心粱侣,剛用Sublime編譯Java程序的時候,我們可能不會意識到這一點齐婴,因為在MyEclipse里直接一串命名下來不會覺得有什么不對柠偶,然而當用Sublime要自主命名時可能會一時間沒反應(yīng)過來,在這里專門提醒一下大家电爹。 第四類 —— “找不到或無法加載主類#”
這一類的問題產(chǎn)生多是因為Java的環(huán)境變量未能配置好丐箩,這里引入別人的經(jīng)驗給大家:http://blog.csdn.net/wangjiaweiwei/article/details/42212525
博主遇到這類問題的時候屎勘,是因為剛剛配置完Sublime Text 2的Java環(huán)境后未進行Sublime的重啟概漱,所以重啟一下Sublime就可以了瓤摧。說在最后
這里博主就幫大家解決問題到這里姻灶,后續(xù)如果你還有遇到什么問題,可以在下方評論中告訴博主敢会,博主會后續(xù)更新鸥昏,謝謝吏垮!