关于楼主的两个问题:
首先楼主要明确一下,classpath的环境变量指定的是.class文件所在的目录,path路径配置的是javac.exe和java.exes所在的目录。而编译的时候,如果.java文件当中没有涉及到其他类,那么系统会按照path路径去找java.exe并在当前目录查找.java文件,如果都找到的话,就能够编译。
因此关于楼主的第一个问题,为什么123.java能够编译通过就能够解释了,因为此时,系统只会去path路径下找javac.exe文件和当前目录下的123.java文件,楼主设置的classpath路径在没用到其他.class文件的编译时是不影响的。
关于楼主的第二个问题,为什么javac 456.java编译会失败,是因为在执行 javac 456.java时要用到123.class文件,因此需要去classpath路径里面去找,但是楼主之前编译的123.class文件不存在于classpath路径下,而在当前目录中,因此编译失败。 |