Java開發(fā)環(huán)境不再需要配置classpath問題
前言
之前發(fā)布了關(guān)于java開發(fā)環(huán)境配置的文章,經(jīng)過與網(wǎng)友的交流,我了解到在jdk1.5以后,java開發(fā)環(huán)境配置的時候,確實不需要對classpath進行配置,但市面上的書籍,以及一些博客、還是老一套,繼續(xù)推薦配置classpath,并且關(guān)于不需要配置classpath網(wǎng)絡(luò)上沒有什么完整細(xì)致,能令人信服的答案,所以我查閱了一些資料以及與別人交流,今天和大家分享一下這些內(nèi)容。
原配置代碼
.;%Java_Home%\bin;%Java_Home%\lib\dt.jar;%Java_Home%\lib\tools.jar
原代碼詳解
Java_Home代表了我們jdk的路徑
- dt.jar是關(guān)于運行環(huán)境的類庫,主要是用于swing的包,如果不使用可以不配置。
- tools.jar是工具類庫,它在編譯和運行一個類時被使用
當(dāng)我們配置classpath后,系統(tǒng)會根據(jù)我們所配置的classpath加載類
例如:在我們使用javac命令編譯程序時,系統(tǒng)加載tools.jar其實就封裝了下面這樣一條命令
javac XXX.java
java -Classpath=%JAVA_HOME%\lib\tools.jar xx.xxx.Main XXX.java
當(dāng)然tools的功能可不止這一點,但是確實它為我們提供了很多便利
我們不再需要配置classpath了!
在JDK1.5以后,classpath并不是必須配置了,在JDK1.5之前,是沒有辦法在當(dāng)前目錄下加載類的(找不到 JDK目錄下lib文件夾中的.jar文件),所以我們需要通過配置classpath,但JDK1.5之后,JRE能自動搜索目錄下類文件,并且加載dt.jar和tool.jar的類。
官方文檔解釋(JDK Tools and Utilities)
The class path tells the JDK tools and applications where to find third-party and user-defined classes that are not extensions or part of the Java platform. See The Extension Mechanism at
類路徑告訴JDK工具和應(yīng)用程序在哪里可以找到第三方和用戶定義的類,這些類既不是Java平臺的擴展,也不是Java平臺的一部分。參見擴展機制
If you upgrade from an earlier release of the JDK, then your startup settings might include CLASSPATH settings that are no longer needed. You should remove any settings that are not application-specific, such as classes.zip. Some third-party applications that use the Java Virtual Machine (JVM) can modify your CLASSPATH environment variable to include the libraries they use. Such settings can remain.
如果您從JDK的早期版本升級,那么您的啟動設(shè)置可能包括不再需要的類路徑設(shè)置。
您應(yīng)該刪除任何與應(yīng)用程序無關(guān)的設(shè)置,比如classes.zip。
一些使用Java虛擬機(JVM)的第三方應(yīng)用程序可以修改類路徑環(huán)境變量,以包含它們使用的庫。這樣的設(shè)置可以保留。
You can change the class path by using the -classpath or -cp option of some Java commands when you call the JVM or other JDK tools or by using the CLASSPATH environment variable. See JDK Commands Class Path Options. Using the -classpath option is preferred over setting the CLASSPATH environment variable because you can set it individually for each application without affecting other applications and without other applications modifying its value. See CLASSPATH Environment Variable.
在調(diào)用JVM或其他JDK工具時,可以使用一些Java命令的-classpath或-cp選項,或者使用CLASSPATH環(huán)境變量,來更改類路徑。參見JDK命令類路徑選項。
使用-classpath選項優(yōu)于設(shè)置CLASSPATH環(huán)境變量,因為您可以為每個應(yīng)用程序單獨設(shè)置它,而不影響其他應(yīng)用程序,也不需要其他應(yīng)用程序修改它的值。參見CLASSPATH環(huán)境變量。
通過官方的文檔說明我們可以看到,rt.jar和tool.jar這兩種屬于java平臺自身的包就不需要添加到classpath中,只有一些第三方類或者自定義類需要,也并不推薦使用配置CLASSPATH的方法,更推薦使用-classpath選項
總結(jié)
在JDK1.5之后的版本,配置Java環(huán)境變量的時候我們不再需要配置classpath,只需要配置Java_Home以及path即可!
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
spring cloud alibaba Nacos 注冊中心搭建過程詳解
這篇文章主要介紹了spring cloud alibaba Nacos 注冊中心搭建過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-10-10
Spring兩種任務(wù)調(diào)度Scheduled和Async的區(qū)別和應(yīng)用場景詳解
在現(xiàn)代應(yīng)用程序中,任務(wù)調(diào)度是一個非常普遍的需求,Spring框架提供了兩種主要的方式來實現(xiàn)任務(wù)調(diào)度:??Scheduled?? 和 ??Async??,在這篇文章中,我們將詳細(xì)介紹這兩種方式的區(qū)別和應(yīng)用場景,需要的朋友可以參考下2024-12-12

