java classpath设置_Java CLASSPATH设置
Java CLASSPATH設置
CLASSPATH: CLASSPATH是一個環境變量,Application ClassLoader使用它來定位和加載.class文件。 CLASSPATH定義路徑,以查找不是擴展或Java平臺一部分的第三方和用戶定義的類。設置CLASSPATH時,請包括所有包含.class文件和JAR文件的目錄。
如果滿足以下條件,則需要設置CLASSPATH:
您需要加載當前目錄或任何子目錄中不存在的類。
您需要加載不在擴展機制指定位置的類。
CLASSPATH取決于您所設置的CLASSPATH。 CLASSPATH在末尾具有目錄名或文件名。以下幾點描述了CLASSPATH的結尾。
如果是JAR或zip,則該文件包含類文件,CLASSPATH以zip或JAR文件的名稱結尾。
如果將類文件放在未命名的程序包中,則CLASSPATH以包含類文件的目錄結尾。
如果將類文件放在命名包中,則CLASSPATH的目錄以完整包名包含根包,該根包是完整包名中的第一個包。
CLASSPATH的默認值為點(.)。這意味著僅搜索當前目錄。設置CLASSPATH變量或使用-classpath命令(簡稱-cp)時,CLASSPATH的默認值將被覆蓋。如果要在搜索路徑中包含當前目錄,請在新設置中添加點(.)。
如果CLASSPATH找到了當前目錄中存在的類文件,則它將加載該類
如果要設置多個類路徑,則需要用分號(;)分隔每個CLASSPATH,并使用它,而不管同一個目錄中是否存在相同的名稱類。
使用JVM的第三方應用程序(MySQL和Oracle)可以修改CLASSPATH環境變量以包括它們使用的庫。這些類可以存儲在目錄或歸檔文件中。 Java平臺的類存儲在rt.jar中。
設置CLASSPATH的方法有兩種: 通過命令提示符或通過設置環境變量。
讓我們看看如何設置MySQL數據庫的CLASSPATH:
步驟1:單擊Windows按鈕并選擇"控制面板"。選擇系統。
步驟2:單擊
高級系統設置。
第3步:。將打開一個對話框。單擊環境變量。
步驟4:如果CLASSPATH已存在于系統變量中,請單擊"編輯"按鈕,然后在末尾添加分號(;)。粘貼MySQL-Connector Java.jar文件的路徑。
如果系統變量中不存在CLASSPATH,請單擊"新建"按鈕,然后將變量名輸入CLASSPATH,將變量值輸入到
C。 : \ Program Files \ Java \ jre1.8 \ MySQL-Connector Java.jar;。;
記住: 放入;。;在CLASSPATH的末尾。
PATH和CLASSPATH之間的區別
PATH
CLASSPATH
PATH是一個環境變量。
CLASSPATH也是一個環境變量。
操作系統使用它來查找可執行文件(.exe)。
Application ClassLoader使用它定位.class文件。
您需要包括包含.exe文件的目錄。
您需要包括所有包含.class和JAR文件的目錄。
PATH環境變量一旦設置,就不能覆蓋。
可以使用javac和java命令的命令行選項-cp或-CLASSPATH覆蓋CLASSPATH環境變量。
如何在Windows中使用命令提示符設置CLASSPATH
在命令提示符中鍵入以下命令,然后按Enter。
set CLASSPATH=%CLASSPATH%;C:\Program Files\Java\jre1.8\rt.jar;
在上面的命令中,該集合是內部DOS命令,允許用戶更改變量值。 CLASSPATH是變量名。用百分號(%)括起來的變量是現有的環境變量。分號是分隔符,在(;)之后是rt.jar文件的路徑。
ext文件夾在Java中的工作方式
ext目錄的工作原理類似于CLASSPATH。 ext目錄是類加載機制的一部分。 ext目錄的JAR中可用的類可用于Java應用程序。
下表說明了CLASSPATH和擴展機制之間的主要區別:
特征
CLASSPATH
擴展機制
類加載順序
在加載引導程序和擴展名之后加載CLASSPATH。
ext會在引導加載后但CLASSPATH加載之前加載。
范圍
這是特定于應用程序的。主機上的所有JRE都是CLASSPATH環境變量。
所有JVM都在特定的JRE java.ext.dirs中運行。
包裹名稱
java.class.path用于查找包含類文件的目錄和JAR歸檔文件。
java.ext.dirs用于指定擴展機制在何處加載類。
規格
由名稱指定,包括extension.jar和包含.class文件的目錄。
指定目錄中的所有JAR文件都已加載。
該機制將從擴展目錄中拾取所有.jar文件,即使該文件不具有.jar擴展名。這樣做的實現是,如果可以更改放置在類路徑目錄中的jar的名稱,使其具有.jar以外的擴展名。通配符(*)不起作用。此技術不適用于擴展目錄。
讓我們通過示例了解執行過程。
A.java
public class A
{
public String toString()
{
return "hello";
}
}
B.java
public class B
{
public static void main(final String[] args)
{
System.out.println(new A());
}
}
編譯A.java文件。我們將已編譯的A.class文件存檔到A.jar中。將此JAR文件放置到已編譯的B.class文件之外的另一個目錄中。
為演示類路徑的使用,我們將A.jar文件放置在目錄C:\JavaPrograms中,并將通過以下方式訪問該JAR: 通配符(*)供B使用。
我們發現,當我們從當前目錄中刪除A.class時,B仍然可以加載A.class。 Java啟動器已明確尋找C: \ JavaProgram。也可以在不存在相同目錄和明確的類路徑規范的情況下加載該類。
使用擴展機制通常被稱為好處,因為所有使用該JRE的應用程序都可以無需在類路徑上顯式指定它們即可看到相同的類。
如果在同一CLASSPATH引用的目錄中將A.jar的名稱更改為A.backup,會發生什么情況。當我們這樣做時會遇到NoClassDefFoundError,因為CLASSPATH引用沒有.jar擴展名。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的java classpath设置_Java CLASSPATH设置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android aidl工具,【Andr
- 下一篇: java 线程 api_Java核心AP