設定jdk環境變數時lib中的rt.jar ,dt.jar ,tool.jar是什麼 ,作用是什麼
網上找了很長時間,就是有點搞不清楚,這JDK的配置CLASSPATH中的dt.jar和tools.jar這兩個檔案到底是幹什麼的,有人說這個dt.jar是關於swing的 開啟這個包確實可以看到和swing有關的類,說是如果用到swing就要配置這classpath,但是rt.jar中的swing呢 這個不才是真正的包含swing類庫嗎? 還有就是這兩個包到底是用作開發的類庫,還是JDK中的JAVAC等程式執行要的類庫。 如果不路徑這兩個包對我們開發的程式中有什麼影響?
——————————————————————————————————————————————————————
答:dt.jar和tools.jar是兩個java最基本的包,裡面包含了從java最重要的lang包到各種高階功能如視覺化的swing包,是java必不可少的。
而path下面的bin裡面都是java的可執行的編譯器及其工具,如java,javadoc等,你在任意的資料夾下面執行cmd鍵入javac,系統就能自動召見java的編譯器就是歸功於這個環境變數的設定
rt.jar是JAVA基礎類庫,dt.jar是關於執行環境的類庫,tools.jar是工具類庫
設定在classpath裡是為了讓你 import *
---------------------------------------------------------------
web系統都用到tool.jar
你用winrar看看裡面是什麼內容啦
---------------------------------------------------------------
1.
rt.jar 預設就在 根classloader的載入路徑裡面 放在claspath是多此一舉
不信你可以去掉classpath裡面的rt.jar
然後用 java -verbose XXXX 的方式執行一個簡單的類 就知道 JVM的系統根Loader的路徑裡面
不光rt.jar jre/lib下面的大部分jar 都在這個路徑裡
2.
tools.jar 是系統用來編譯一個類的時候用到的 也就是javac的時候用到
javac XXX.java
實際上就是執行
java -Calsspath=%JAVA_HOME%/lib/tools.jar xx.xxx.Main XXX.java
javac就是對上面命令的封裝 所以tools.jar 也不用加到classpath裡面
3.
dt.jar是關於執行環境的類庫,主要是swing的包 你要用到swing時最好加上
dt.jar好像是swing的一些什麼類,Eclipse開發環境預設的JRE也沒有包括它。應該沒用。
tools.jar應用伺服器用來編譯JSP檔案,應用伺服器自己會載入,不需要自己設定。
關於path和classpath的含義:
1.path變數的含義就是系統在任何路徑下都可以識別java,javac命令
2.classpath變數的含義是告訴jvm要使用或執行的class放在什麼路徑上,便於JVM載入class檔案,.;表示當前路徑,tools.jar和dt.jar為類庫路徑。如果不用Swing裡面的東西,可以不加dt.jar。 tools.jar裡面是最基本的工具類,比如javac,不加是無法做開發的。
1. rt.jar 預設就在 根classloader的載入路徑裡面 放在claspath是多此一舉 不信你可以去掉classpath裡面的rt.jar 然後用 java -verbose **X 的方式執行一個簡單的類 就知道 JVM的系統根Loader的路徑裡面 不光rt.jar jre/lib下面的大部分jar 都在這個路徑裡
2. tools.jar 是系統用來編譯一個類的時候用到的 也就是javac的時候用到 javac **.java 實際上就是執行 java -Calsspath=%JAVA_HOME%/lib/tools.jar xx.**.Main **.java javac就是對上面命令的封裝 所以tools.jar 也不用加到classpath裡面
3. dt.jar是關於執行環境的類庫,主要是swing的包 你要用到swing時最好加上
dt.jar是關於執行環境的類庫,主要是swing的包
tools.jar是關於一些工具的類庫
rt.jar包含了jdk的基礎類庫,也就是你在java doc裡面看到的所有的類的class檔案
編譯和執行需要的都是toos.jar裡面的類 , 分別是
sun.tools.java.*;
sun.tools.javac.*;