標籤:
如果你輸入一個命令,比如
java
那麼系統是如何找到這個命令的呢?
按照順序,系統先在目前的目錄搜尋是否有java.exe, java.bat 等。 如果沒有,就得到系統的PATH(不區分大小寫)裡面尋找。
比如你的環境變數的PATH裡面有 C:\program files\java\jdk1.6\bin
那麼 系統會嘗試在這個目錄下面尋找,並且找到了 java.exe 那麼就會執行它。
所以 path 就是系統為了搜尋某個資源而配置的一個參數。 多個目錄之間用分號(linux裡面用冒號)分割。
那麼CLASSPATH呢? 同樣的道理,當我們需要某個class時,系統會自動在CLASSPATH裡面搜尋,如果是jar,就自動從jar裡面尋找,如果是普通的目錄,則在目錄下面按照package進行尋找。
但與PATH不同的是,預設的CLASSPATH是不包含目前的目錄的,這也是CLASSPATH裡面要包含一個點的道理了。
Tomcat下的Web應用有兩個預置的classpath : WEB-INF/classes 和WEB-INF/lib啟動項目,項目就會載入這兩個目錄裡的資料。這是war包的規範.要改變預置的classpath比較麻煩,在Tomcat的設定檔裡沒有發現類似的配置,要實現自己的classloader才能達到目的。
一個在tomcat中啟動並執行web應用.它的classpath都包括如下目錄:
我知道的有:
%tomcat%/lib
web-inf/lib
web-inf/classes
環境變數裡的classpath
總結:classpath這是一個定位資源的入口.classpath下 lib的優先順序大於classes;
--------------------------------------------------------------------------------------------------------------------------------
【1.環境變數】 通俗的說,環境變數就是在作業系統中定義的變數,可供作業系統上的所有應用程式使用。
查看環境變數: 命令列下 set命令。set命令查看到的是使用者變數和系統變數值的總和。
【path環境變數】
將某個環境變數包含在一對%%之間,表示取這個環境變數的當前值.
當電腦上裝有多個java開發工具,如何知道命令列視窗中執行的java命令屬於那個開發套件呢? 只要在運行java.exe時加上verbose參數就行了,格式如下:
java -verbose
java虛擬機器啟動時,就會顯示其詳細的載入過程資訊。
path環境變數的作用:path環境變數的作用是設定供作業系統去尋找和執行程式的路徑,也就是說如果作業系統在目前的目錄下 沒有找到我們想要執行的程式和命令時,作業系統就會按照path環境變數指定的目錄依次去尋找,以最先找到的為準。
path環境變數可以存放多個路徑,路徑和路徑之間用分號(;)隔開。
【腳下留心】運行java代碼的命令是 java XXX 而不是 java XXX.class!運行時不要帶上.class副檔名。如果源檔案為XXX.java,檔案中有多個類定義,編譯後的.class檔案就有多個能直接用java命令啟動運行只有那個含有main函數的類。java命令後面跟的參數是類名,而不是檔案名稱。儘管檔案名稱為XXX.java,卻不見得是以java XXX的形式運行程式,關鍵還是要看類名。
【classpath環境變數】java虛擬機器要裝載某一個類時,去那個目錄下尋找?
java虛擬機器在尋找類的時候,不會在目前的目錄下尋找,只找classpath指定的目錄,因此我們如果不配classpath環境變數,在目前的目錄下編譯java檔案時,就會提示找不到class檔案。因此我們通常在配classpath變數時用.表示當前路徑.
【java中的注釋】java裡的注釋根據不同的用途分為三種類型:
單行注釋:在注釋內容前加雙斜線。
多行注釋: 通過 /* int c=5;*/
文檔注釋: 通過/** 這裡是注釋內容*/
文檔注釋的內容會被解釋成程式的正式文檔,並能包含進諸如javadoc之類的工具程式產生的文檔中。
\r表示接受鍵盤輸入,相當於按下斷行符號
\n表示換行
\t表示定位字元,相當於Table鍵
\b表示退格鍵,相當於Back Space.
\‘表示單引號
\‘‘表示雙引號
\\表示一個斜杠"\"
java之classpath到底是什麼