Java的环境变量有三个,分别是JAVA_HOME,PATH和CLASSPATH。
一般设置为:
JAVA_HOME=D:/Java/jdk_1.6.0.03 //即JDK的安装目录
PATH=%JAVA_HOME%/bin
CLASSPATH=.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar
E:/Java>echo %PATH% E:/Java>echo %JAVA_HOME% E:/Java>echo %CLASSPATH% E:/Java>dir E:/Java 的目录 2007-10-29 23:15 <DIR> . E:/Java>type HelloDate.java public class HelloDate E:/Java>javac HelloDate.java E:/Java>dir E:/Java 的目录 2007-10-29 23:15 <DIR> . E:/Java>java HelloDate E:/Java> |
我的电脑中Java环境变量的配置信息与HelloDate.java文件的编译、运行情况如上面所示,该文件为《Thinking in Java》(中文版《Java编程思想》P30)上的一个例子。对编译运行的结果有几处疑问:
1. %JAVA_HOME%/lib目录下的tools.jar和dt.jar这两个JAR文件是做什么用的?我的HelloDate.java编译运行时并未设置将这两个文件加入CLASSPATH,但是依然可以成功编译与运行。
2. HelloDate.java文件中使用了java.util.Date类,javac编译时,是如何找到这个类的?
3. 我在%JAVA_HOME%/jre/rt.jar文件中找到了java.util.Date类的定义,编译及运行的时候是否找到的就是此处的定义?rt.jar并未加入CLASSPATH定义的搜索路径中,而Java又是如何找到这个类的?
4. 我在下载JDK1.6并安装完毕之后,bin和lib目录共在三处出现,以bin目录为例,分别是D:/Java/jdk1.6.0_03/bin,D:/Java/jdk1.6.0_03/jre/bin和D:/Java/jre1.6.0_03/bin,而环境变量PATH使用的是第一个,这三处的bin与lib分别都在何时起作用?有什么区别?