java環境變數解析
阿新 • • 發佈:2019-01-23
java_home C:\Program Files\Java\jdk-10.0.1 classpath .;%JAVA_HOME%\lib\dt.jar; %JAVA_HOME%\lib\tools.jar path %JAVA_HOME%\bin; %JAVA_HOME%\jre\bin; C:\Program Files (x86)\Common Files\Oracle\Java\javapath; %SystemRoot%\system32; %SystemRoot%; %SystemRoot%\System32\Wbem; %SYSTEMROOT%\System32\WindowsPowerShell\v1.0\; 網上看到比較好的: 原文地址: https://www.cnblogs.com/nulisaonian/p/6027771.html 讀者可以先看下面的原文內容,再看我新增的內容: 原文內容幫我解決了大部分疑惑,但還有一部分沒有解決:問題就是: classpath:為什麼是.;%JAVA_HOME%\lib\dt.jar; %JAVA_HOME%\lib\tools.jar 中的lib\dt.jar;lib\tools.jar 我在java的目錄中根本沒有發現的,好吧。 解決方案: 轉載請註明出處:http://blog.csdn.net/ns_code/article/details/18547959 本來想自己寫的,人寫的挺好,我想就算了吧; 感謝兩位大佬。 原文內容: 淺析JAVA_HOME,CLASSPATH和PATH的作用: 1,設定JAVA_HOME: java的目錄 一、為了方便引用,比如,你JDK安裝在C:\ProgramFiles\Java\jdk1.7.0目錄裡,則設定JAVA_HOME為該目錄路徑, 那麼以後你要使用這個路徑的時候, 只需輸入%JAVA_HOME%即可,避免每次引用都輸入很長的路徑串; 二、歸一原則, 當你JDK路徑被迫改變的時候, 你僅需更改JAVA_HOME的變數值即可, 否則,你就要更改任何用絕對路徑引用JDK目錄的文件, 要是萬一你沒有改全, 某個程式找不到JDK, 後果是可想而知的----系統崩潰! 三、第三方軟體會引用JAVA_HOME變數, 不然, 你將不能正常使用該軟體, 以後用JAVA久了就會知道, 要是某個軟體不能正常使用, 不妨想想是不是這個問題. 2,設定CLASSPATH: 為了找到執行目標,java不同於linux上的可執行檔案,linux的可執行檔案提前都編譯連結好了,最終是一個打包好的檔案。java有一堆可執行檔案:*.class檔案. CLASSPATH就是約定class檔案的查詢路徑。 這是一個比較折磨初學者的問題, 這個變數設定的目的是為了程式能找到相應的".class"檔案, 不妨舉個例子: 你編譯一個JAVA程式---A.java, 會得到一個A.class的類檔案,你在當前目錄下執行java A, 將會得到相應的結果(前提是你已經設定CLASSPATH為"."). 現在, 你把A.class移到別的目錄下(例如:"e:\"), 執行java A, 將會有NoClassDefFindError的異常,原因就是找不到.class檔案, 現在你把CLASSPATH增加為:".;e:\"再在任何目錄下執行java A, 看看會有什麼結果~~:)~~~,一切正常, java命令通過CLASSPATH找到了.class檔案! classpath=c:\test就表示執行執行命令時去c:\test資料夾去找需要被執行的class檔案 在java5之前該路徑是不能指定當前路徑的,除非這樣設定:classpath=.;c:\test,就表示先在當前目錄找class檔案,要是沒找到就到c:\test去找;(當一個變數有多個值時,多個值之間是有英文的分號隔開) 設定從當前所在目錄查詢(java1.5後預設):set classpath=. 3,設定PATH:(必須設定) 道理很簡單, 你想在任何時候都使用%JAVA_HOME%\bin\java等來執行java命令嗎, 當然不會, 於是, 你可以選擇把%JAVA_HOME%\bin新增到PATH路徑下, 這樣, 我們在任何路徑下就可以僅用java來執行命令了. (當你在命令提示符視窗輸入你個程式碼時,作業系統會在當前目錄和PATH變數目錄裡查詢相應的應用程式,並且執行.)