我们知道在%JAVA_HOME%\jdk1.6.0\bin\目录下面存在大量的.exe文件,其中很多只是一个包装器如javac.exe,对这些exe文件的调用最终是去运行java库中相应的类文件。javac.exe对应%JAVA_HOME%\jdk1.6.0\lib\tools.jar中的com.sun.tools.javac.Main(在此处也有一个sun.tools.javac.Main,这个在我的系统上运行提示该类文件过时了)。
对javac.exe的调用可以用下列批处理文件表示:
set classpath=%JAVA_HOME%\jdk1.6.0_01\lib\tools.jar;
java com.sun.tools.javac.Main %1
如上所说,我们是不是可以理解为执行javac时虚拟机就启动了。因为调用了java,java又会调用到jvm.dll。。。。。。。。。。。。
我觉得我的理解应该时错误的,希望高手指正。
------解决方案--------------------
你的理解是正确的。
------解决方案--------------------
不过这个虚拟机的运行跟运行你的java程序无关,所以不用理会。