1.首先说一下JDK运行原理。
一个MyTest.java文件要想被运行,首先要被javac.exe编译生成字节码文件 ----> MyTest.class文件
然后JDK中的Java命令运行此MyTest.class文件,java代码就可以被执行。
2.为什么要配置Path?
平时使用cmd运行JDK中的命令时,只能在JDK的安装目录下运行如 javac和java命令。但是一旦脱离了当前安装目录,对于编写的java文件就没办法继续执行,会提示没有此命令。所以要想在任何目录下都能运行JDK命令,就需要在path中配置JDK的安装路径。这样,在cmd中运行java命令时,会先从当前目录进行查找,如果查找不到此命令的执行程序,便会到path路径查找,path中配置了JDK的安装路径,所以此时在任何目录下都能编译执行Java文件。
3.为何配置classpath:
jvm在查找class文件时如果没有设置classpath会在当前路径查找,设置classpth后仅在classpath路径下查找class文件即可。
classpath 不是必须配置的。假如在D盘下有个MyTest.java文件。进到d盘后,javac test.java 那么会在当前生成MyTest.class文件。所以java MyTest.class会得到相应的结果。如果设置了classpath是D:/myClassPath,将test.class剪切到D:/myClassPath中,在d路径下执行java MyTest 照样可以得到结果。
因为规则是:执行java MyTest的时候,先在test.java当前目录找MyTest.class文件找不到再去myClassPath中找,这里是到D:/myClassPath中找。
特别注意:配置方式上有所不同,如果单纯的配置一个路径结尾没有 " ;. ",那么只会去ClassPath配置的路径下查找,找不到就会提示文件不存在。配置了“ ;. ” 才会在配置路径找不到文件的情况下再去当前目录查找。
文章参考: