一、javac的本质
"c:\Program Files\Java\jdk1.6.0_14\bin\java" -classpath "c:\Program Files\Java\jdk1.6.0_14\lib\tools.jar" com.sun.tools.javac.Main
与
"c:\Program Files\Java\jdk1.6.0_14\bin\javac"
执行结果一样
原因是:javac.exe就是一个包裹器,实际上是一个java程序。java.exe也是一个程序。javac.exe的作用不过是为了让你不用敲太 多的指令。
jdk里面的包括javac.exe,java.exe等等工具实际上也是用java开发出来的,因此我们必须要在安装jdk的同时安装jre,不然你的 jdk中的工具将会无法使用,而在C:\Program file\java中的jre是用来执行我们所写的java程序的
二、JDK和JRE的区别
"c:\Program Files\Java\jdk1.6.0_14\jre"和"c:\Program Files\Java\jre1.6.0_14"有什么区别?
在JDK目录下的jre包含Server、Client版本的JVM,如下:
-----------------------------------------------------------------------------------------------------
C:\Program Files\Java\jdk1.6.0_14\bin>java -version -server
java version "1.6.0_14-ea"
Java(TM) SE Runtime Environment (build 1.6.0_14-ea-b05)
Java HotSpot(TM) Server VM (build 14.0-b13, mixed mode)
C:\Program Files\Java\jdk1.6.0_14\bin>java -version -client
java version "1.6.0_14-ea"
Java(TM) SE Runtime Environment (build 1.6.0_14-ea-b05)
Java HotSpot(TM) Client VM (build 14.0-b13, mixed mode, sharing)
主要原因是:c:\Program Files\Java\jdk1.6.0_14\jre\bin目录下有:client和server两个目录,分别存放client和server版本 的jvm.dll
-----------------------------------------------------------------------------------------------------
在JRE目录下的jre只包含Client版本的JVM,不包含Server版本的JVM,如下:
-----------------------------------------------------------------------------------------------------
c:\Program Files\Java\jre1.6.0_14\bin>java -version -client
java version "1.6.0_14-ea"
Java(TM) SE Runtime Environment (build 1.6.0_14-ea-b05)
Java HotSpot(TM) Client VM (build 14.0-b13, mixed mode, sharing)
c:\Program Files\Java\jre1.6.0_14\bin>java -version -server
Error: no `server' JVM at `c:\Program Files\Java\jre1.6.0_14\bin\server\jvm.dll'.
主要原因是:c:\Program Files\Java\jre1.6.0_14\bin目录下有:仅有client目录,分别存放client版本的jvm.dll
-----------------------------------------------------------------------------------------------------
三、java.exe在哪个jvm中运行
1.搜索当前目录和PATH有没有java.exe程序,找到后,再继续找在哪个jre环境中运行。
2.自己的目录下有�有JRE目录。(不是很精确,请看jdk源码)
3.父目录底下JRE子目录。
4.查询Windows Registry(HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment\CurrentVersion)
5.根据查找的jre环境,运行java程序
没有评论:
发表评论