jdk中rt.jar的作用


rt代表“RunTime”。.jar是.exe,.java,類文件的包,以及軟件程序所需的所有媒體資料,如圖像,視頻,音頻。

rt.jar包包含引導類(bootstrap classes)——來自Core Java API的所有類。java.time.、java.util.、java.nio.、java.lang.、java.text.、java.sql.、java.math.*等等都在rt.jar包下。例如,需要從java.util.concurrentpackage引用類,比如 ConcurrentHashMap,JVM會從rt.jar中查找它,從而使程序能夠正確運行。

當你編寫程序時,你會用到很多系統類的變量,比如String類,System。它實際上是PrintWritter類的一個對象。所有這些java.*,javax.*,sun.*,org.*,jdk.*類都駐留在rt.jar中,JVM在運行時從rt.jar文件訪問所有這些類。如果在類路徑中沒有包含rt.jar,則無法訪問核心類exp,java.lang.String,java.lang.Thread,java.util.ArrayList和Java API中的所有其他類。

rt.jar包含了JVM信任的class文件,JVM加載時不會對其他class文件進行嚴格的安全檢查。

這些API的源代碼可以在$ JAVA_HOME / src.zip文件中找到。

由於rt.jar中的所有類都是JVM已知的,當JVM加載這些類時,會用單獨的引導類加載器進行加載,避免許多基本安全檢查,這樣做主要是出於各種性能考慮。而對於其他的jar或class,類加載器會進行大量的安全審查。

 

 

 

我們在配置java環境變量時會配置JAVA_HOME、Path、Classpath,其中Classpath會配置.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar。(在jdk1.5之后可以不用再配置Classpath)

rt.jar在%JAVA_HOME%\jre\lib,dt.jar和tools.jar在%JAVA_HOME%\lib下。

 

 

 

 

  • rt.jar:Java基礎類庫,也就是Java doc里面看到的所有的類的class文件。
  • tools.jar:是系統用來編譯一個類的時候用到的,即執行javac的時候用到。
  • dt.jar:dt.jar是關於運行環境的類庫,主要是swing包。

 

最后我們再看下rt.jar包下的java包子目錄。

 

 

參考鏈接:

https://blog.csdn.net/u011305680/article/details/80380532

https://blog.csdn.net/ni_hao_fan/article/details/95315193

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM