日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

java classpath设置_Java CLASSPATH设置

發(fā)布時間:2024/7/23 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java classpath设置_Java CLASSPATH设置 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。