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