在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,因为我上面提到的程序继续相同的问题。 感谢
答案 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
非常糟糕。为您的班级提供有意义的名称,例如Bicycle
或PasswordGenerator
。