Photo by Irina Babina on Pexels |
Path
讓 實體作業系統(如Windows)找可執行指令的地方
例如:Windows的.exe、.bat等,Linux具執行權限的檔案
ClassPath
讓 JVM 找可執行指令的地方(.class)
實際上是給應用程式類別載入器(AppClassLoader)使用的資訊
PATH
在cmd模式下:
- 可使用 %PATH% 指令來查看作業系統現有哪些PATH路徑
- 程式執行時,會依序尋找適合的執行檔,先找到先使用
- 如果只是要在 當下使用 該路徑,可使用 SET PATH = 完整路徑 指令來設定,
該設定在cmd關閉後隨即消失 - 如果是要 永久使用 的路徑,需至控制台設定 使用者環境變數 或 系統環境變數
- 使用者環境變數:僅於該使用者有效
- 系統環境變數:每個登入的使用者皆有效
使用時的採納順序:
- SET PATH指令
- 系統環境變數
- 使用者環境變數
CLASSPATH
在cmd模式下:
- 若未特別指定路徑,則編譯器和JVM會採用預設路徑
→ 在當前目錄資料夾中尋找.class - 如要指定路徑,需使用 -cp(-classpath)來指定例如:資料夾 workspace 中的 HelloWorld.java 中若調用了資料夾 classes 的 Message.java,則:1) 編譯:javac -cp c:\classes HelloWorld.java
*要另外指定被調用的資料夾2) 執行:java -cp c:\classes;c:\workspaceHelloWorld
*因JVM只會從被指定的資料夾找執行檔 - 如果只是要 一次性使用 該路徑,使用 -cp 指令指定
- 如果要在 該次開啟cmd的過程中使用 該路徑,使用 SET CLASSPATH = 完整路徑,
該設定將在cmd關閉後消失
例如:SET CLASSPATH = C:\classes;c:\lib\abc.jar;c:\lib\xyz.jar - 如果是要 永久使用 該路徑,需在 使用者環境變數 或 系統環境變數 中設定
- 使用者環境變數:僅於該使用者有效
- 系統環境變數:每個登入的使用者皆有效
使用時的採納順序:
- -cp 或 -classpath 指令
- SET CLASSPATH 指令
- 系統環境變數
- 使用者環境變數
留言
張貼留言