比如我在D:\develop\Java\jdk1.7.0_72\bin设置了path的环境变量, 然后在C盘创建了一个叫HelloWorld.java的源文件.
我进行了如下操作:
1. 在当前文件夹打开命令窗口
2.编译javac HelloWorld.java (此时编译成功,生成了HelloWorld.class 文件)
3.运行java HelloWorld (成功运行,输出Hello World!)
但是如果我在D盘设置了classpath环境变量,然后在C盘创建了一个叫Hello.java的源文件时候,
我进行了如下操作:
1. 在当前文件夹打开命令窗口
2.编译javac Hello.java (此时编译成功,生成了Hello.class 文件)
3.运行java Hello (此时系统报错!)
老师解释说是,因为设置了classpath环境变量,所以运行Hello.class文件的时候,系统运行时会去指定的D盘目录找不到Hello.class,而不是在当前的目录下去找Hello.class文件.
但是我的疑惑是,为什么上面的第一个例子HelloWord.java在进行编译的时候,即编译javac HelloWorld.java ,编译成功了,生成了HelloWorld.class 文件), 但是HelloWord.java文件也不在D:\develop\Java\jdk1.7.0_72\bin目录里面啊.
按照classpath的逻辑, 在编译的时候不应该去到指定的D盘bin目录去找HelloWorld.java文件吗? 找不到按道理应该要报错的啊?
求大神解释,我想了N久还是想不通,难受死了
|
|