如果你寫了第一個HelloWorld.java:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello!World!");
}
}
這個.java放在C:\workspace中,然後你如下切換至C:\workspace,並執行javac
指令:
失敗了?為什麼?這是(Windows)作業系統在跟你抱怨,它找不到
javac
放在哪邊!當要執行一個工具程式,那個指令放在哪,系統預設是不曉得的,除非你跟系統說工具程式存放的位置。例如:javac
編譯成功後會靜稍稍地結束,所以沒看到訊息就是好消息,但是這樣下指令實在太麻煩了。,而且你會有疑問:之前安裝JDK最後示範執行java
指令時,為什麼不用指定位置?當你鍵入一個指令而沒有指定路徑資訊時,作業系統會依照
PATH
環境變數中設定的路徑順序,依序尋找各路徑下是否有這個指令。可以執行echo %PATH%
來看看目前系統PATH
環境變數中包括哪些路徑資訊:依上圖的PATH
資訊,如果你鍵入java
指令,系統會從第一個路徑開始找有無java(.exe)工具程式,如果沒有再找下一個路徑有無java(.exe)工具程式...找到的話就執行。若你查看C:\Windows\system32,會發現當中確實有 java(.exe),這是因為安裝JDK(JRE)時,Windows的JDK(JRE)安裝程式會自動放一份java(.exe)到C:\Windows\system32,這就是為何之前安裝JDK(JRE)後,就可以直接執行java
指令的原因。
然而依上圖的PATH
資訊,如果鍵入javac
指令,系統找完PATH
中所有路徑後,都不會找到javac (.exe)工具程式,當所有路徑都找不到指定的工具程式時,就會出現剛剛第一張圖的錯誤訊息。
你要在PATH
中設定工具程式的路徑資訊,系統才可以在PATH
中找到你要執行的指令。Windows如果要設定PATH
,可以使用SET
指令來設定,設定方式為SET PATH=路徑
。例如:
設定時若有多個路徑,會使用分號(;)作區隔,通常會將原有
PATH
附加在設定值後面,如此尋找其它指令時,才可以利用原有的PATH
資訊。設定完成之後,就可以執行javac
而不用額外指定路徑。建議將JDK的bin路徑放在Path
變數的最前方,是因為系統搜尋Path
路徑時,會從最前方開始,如果路徑下找到指定的工具程式就會直接執行,若系統中安裝兩個以上JDK時,Path
路徑中設定的順序,將決定執行哪個JDK下的工具程式,在安裝了多個JDK或JRE的電腦中,確定執行了哪個版本的JDK或JRE非常重要,確定PATH資訊是一定要作的動作。