Re: [問題] 為何不是import rt.java.lang.*
※ 引述《wfgh (lyle)》之銘言:
: 我的windows的環境變數 classpath是設成
: C:\Program Files\Java\jre6\lib
: 那為何程式碼打import java.lang.*
: 而不是打import rt.java.lang.*呢?
: Java SE API的jar檔不是叫做rt.jar嗎?
: 感謝解惑
你可以用 rt.jar 不是因為你設了 CLASSPATH 為
C:\Program Files\Java\jre6\lib
在此篇教學有說到
http://download.oracle.com/javase/tutorial/ext/basics/load.html
rt.jar 是屬於 Bootstrap classes 會自動被讀取。
這是得指出來,你所誤解的部分。
回到問題本身,為什麼不是 rt.java.lang.*。
這表示你並不知道,在執行的時候 classloader 是如何對待 rt.jar
classloader 並不知道有 rt.jar 這個檔案
它取得的是解開後的 classes
如同一般的資料夾一樣,它只是一個搜尋路徑的起點
A/
com/
qty/
A.class
B/
com/
qty/
B.class
C.class
Foo.jar/
com/
qty/
D.class
A.class
例如:現在有二個實體路徑,一個 .jar
你的 CLASSPATH 設成 A:B:.
那就只能找到 com.qty.{A, B, C} 三個類別
再多加個 Foo.jar 那就多出了 com.qty.D 類別
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.231.52.57
推
11/15 15:40, , 1F
11/15 15:40, 1F
討論串 (同標題文章)