当我在windows CMD的同一个文件夹中时,为什么我必须为我的.class文件指定Java类路径?
我在文件夹中有一个简单的“test.java”。我在包含“test.java”的文件夹下,该文件夹已经运行了“当我在windows CMD的同一个文件夹中时,为什么我必须为我的.class文件指定Java类路径?,java,windows,command-line,Java,Windows,Command Line,我在文件夹中有一个简单的“test.java”。我在包含“test.java”的文件夹下,该文件夹已经运行了“javactest.java”。创建一个“test.class”文件 但是当我尝试运行“javac测试””时,我的环境总是返回 错误:无法找到或加载主类测试 除非我键入java-cp。test获取执行test.class文件的java 为什么? 谢谢。你自己回答了问题 当你这样做的时候 java test 那么当前目录不在类路径中 因此,当您使用-cp.时,它会工作(正如上面所说:将“
javactest.java
”。创建一个“test.class”文件
但是当我尝试运行“javac测试”
”时,我的环境总是返回
错误:无法找到或加载主类测试
除非我键入java-cp。test
获取执行test.class文件的java
为什么?
谢谢。你自己回答了问题 当你这样做的时候
java test
那么当前目录不在类路径中
因此,当您使用-cp.
时,它会工作(正如上面所说:将“.”aka“当前目录添加到当前类路径中)
另一方面,默认情况下,“.”应位于默认类路径中(请参阅)
因此,有两种解释:
- 如前所述,文件名周围出现了一些微妙的小问题
- 您的环境实际上设置了一个classpath ENV变量;该变量不包括“”
-cp.
;句点表示当前目录。感谢您的输入;我更新了关于该方面的答案;因此,您的协议可能会显示为upvote;-)谢谢您的GhostCat。第二个解释是原因-Windows上的我的开发环境变量以某种方式设置为“类路径”=(some/folder)”,导致Java查找该文件夹而不是当前工作目录。现在我删除了它,并且“Java测试”工作正常。注意。谢谢@arcy。