作者qrtt1 (null)
看板java
标题Re: [问题] 为何不是import rt.java.lang.*
时间Sun Nov 14 21:46:52 2010
※ 引述《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
1F:推 wfgh:谢谢,我懂了 11/15 15:40