主要是發現自己的java沒有安裝成功:……/Java/jdk1.8.0_121/lib里面沒有tools.jar,dt.jar
而假如正確安裝的話,dt.jar和tools.jar位于:{Java_Home}/lib/下,而rt.jar位于:{Java_Home}/jre/lib/下, {Java_Home}對應的本文的是……/Java/jdk1.8.0_121
rt.jar是JAVA基礎類庫,也就是你在java doc里面看到的所有的類的class文件 dt.jar是關于運行環境的類庫
tools.jar是工具類庫,編譯和運行需要的都是toos.jar里面的類分別是sun.tools.java.; sun.tols.javac.;
在Classpath設置這幾個變量,是為了方便在程序中 import;Web系統都用到tool.jar。
rt.jar rt.jar 默認就在Root Classloader的加載路徑里面的,而在Claspath配置該變量是不需要的;同時jre/lib目錄下的
其他jar:jce.jar、jsse.jar、charsets.jar、resources.jar都在Root Classloader中
tools.jar
tools.jar 是系統用來編譯一個類的時候用到的,即執行javac的時候用到
javac XXX.java
實際上就是運行
java -Calsspath=%JAVA_HOME%/lib/tools.jar xx.xxx.Main XXX.java
javac就是對上面命令的封裝 所以tools.jar 也不用加到classpath里面
dt.jar dt.jar是關于運行環境的類庫,主要是swing的包 在用到swing時最好加上。更詳細的解釋
參考鏈接: 安裝java之后,找不到tools.jar 和dt.jar 其實哈,在安裝JDK時一鍵傻瓜式安裝是沒有問題
JDK中rt.jar、tools.jar和dt.jar作用
win10,本來已下載java7,程序在IntelliJ IDEA上跑得好好的。 下載java8后,修改了環境變量(C:/PRogram Files/Java/jdk1.7.0_79 –> C:/Program Files/Java/jdk1.8.0_121)
這里是吐槽分割線: 一臺機器上可以有很多版的JDK,但是環境變量有一版就好,在不同的project里選擇相應的JDK版本即可。 被自己蠢哭了 T……T
修改程序的的sdk,再次運行,出現
java.lang包包含著Java最基礎和核心的類,在編譯時會自動導入。 java.lang是最基本的類,連它都出錯了, 首先第一反應是是不是JDK沒有裝對,因為之前改過環境變量(被自己蠢哭了 T……T),所以吭哧吭哧去重裝了一次JDK,驗證JDK是否安裝正確: 一般而言,只要jre>=java就可以了。
可是,問題依然沒有解決。
這時發現一個很關鍵的一:Compilation failed: inner java compiler error 而且排除了這種可能性(set中java complier 設置的問題 ,項目中有人用jdk1.6 有人用jdk1.7 版本不一樣 會一起這個錯誤)后,那么只能說明一個問題:工程JDK沒有配置正確
重新配置JDK即可,File -> Project Structure -> Platform Settings -> SDKs刪除原來的JDK(“-”)添加新的JDK(“+”),選擇新的JDK的路徑添加即可。新聞熱點
疑難解答