读书人

JDK跟JRE、paht和classpath

发布时间: 2013-03-27 11:22:42 作者: rapoo

JDK和JRE、paht和classpath
从下面例子可以看出bin中的工具是用java实现的-------------------------------------------------------先将tools.jar改名为tools1.jar,然后运行javac.exe,显示如下结果: Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/tools/javac /Main这个意思是说,你输入 javac.exe与输入 java -cp c:\jdk\lib\tools.jar com.sun.tools.javac.Main是一样的,会得到相同的结果。

?

既然这些工具是用java实现的,那么在使用这些工具的时候就必然要用到一套JRE,所以在JDK中自带了一套JRE,而且在这个JRE的bin目录中包含了client和server两个文件夹,其实就是两种jvm。

?

而位于JAVA_HOME目录下的那套JRE是用来运行一般Java程序用的。

?

JRE是java的运行环境,既然是运行环境,当然要包含jvm(也就是大家熟悉的虚拟机),还有所有java类库的class文件,这些文件在JRE的lib目录下被打包成了jar(rt.jar)。在windows上的虚拟机就是jre6/bin/client里面的jvm.dll。

?

如果电脑上安装了两个JRE,那怎么判定运行java的JRE是哪一个呢?

-------------------------------------------------------------

根据环境变量PATH的配置,系统会首先找到配置的的java.exe?;

?

(注:如果PATH最前面有“%SystemRoot%\system32;%SystemRoot%;”这样的配置,而且在Windows/system32下存在java.exe,那么系统会选择这个java.exe)

?

Java.exe的工作就是找到合适的JRE来运行Java程序,Java.exe依照底下的顺序来查找JRE:

读书人网 >编程

热点推荐