无法在cmd中找到或加载主类错误

时间:2015-01-25 14:50:23

标签: java cmd main

在Windows cmd中遇到编译问题后,我改变了路径,然后开始编译java文件。我在步骤中做了什么:

1-)我添加了Enviromental Variables:2个新的用户变量;将它们命名为PATH和CLASSPATH我将变量值添加到jdk位置我也对系统变量执行了相同的过程。 2-)我写了一个简单的程序,只打印Hello World并将其命名为M,以便我可以看到它是否正常工作。我把它保存在桌面上,我在cmd cd Desktop中写道... 我在同一个地方写了javac M.java然后它成功编译并生成它的类M.class然后我在cmd java M中编写并且不幸的是我得到了这个错误 错误:无法找到或加载主类

*程序没有语法或逻辑错误我只是尝试使用HelloWorld,因为我上面提到的程序继续相同的问题。 感谢

1 个答案:

答案 0 :(得分:1)

java classpath 中列出的目录和jar文件中查找类(运行时环境附带的标准类除外)。

运行程序时,您没有传递任何类路径选项。因此,java会查找定义此目录和jar文件列表的CLASSPATH环境变量。

据推测,你没有任何这样的环境(这是一件好事,BTW)。所以你只需要将类路径作为选项传递给java:

java -cp . M

这告诉Java应该在当前目录(.)中找到类文件。由于您的类在默认包中,因此它将在当前目录中查找M.class。如果M包含在com.mycompany中,您可以使用

java -cp . com.mycompany.M

它将从当前目录开始查找文件com/mycompany/M.class

当然,如果从另一个目录运行此命令,则应更改该选项的值。例如:

java -cp c:\Desktop com.mycompany.M

将类放在默认包中是一种不好的做法。以前习惯将它们放在包中。

请注意,命名类M非常糟糕。为您的班级提供有意义的名称,例如BicyclePasswordGenerator