从命令行运行Java - 无法找到主类

时间:2014-09-05 00:04:51

标签: java command-line javac

我有一个包含少量.java文件的文件夹:Triangle.java,Circle.java,Square.java等。主要方法是在HW1.java中。所有文件都设置在包hw1中。

它在NetBeans中运行良好,但当我打开它时,它们将从命令行编译它,所以我想确保我可以测试它们将要做什么。

我在Windows 7上,我已经将Java 7添加到了我的类路径中。我转到文件夹,键入javac *.java,所有.java文件的.class文件都显示正常。

然后我尝试运行该程序。当我输入java HW1时,我会收到Exception in thread "main" java.lang.NoClassDefFoundError: HW1 (wrong name: hw1/HW1)。当我输入java hw1/hw1时,我会收到Error: Could not find or load main class hw1.HW1。当我输入java hw1.HW1时也是如此。当我尝试将整个文件夹放入类路径中时,也是如此。

我做错了什么?

3 个答案:

答案 0 :(得分:3)

您必须使用hw1父文件夹中的java hw1.HW1命令,而不是hw1本身。

答案 1 :(得分:0)

看起来你正在使用

package hw1;

位于java文件的顶部。如果您不需要包裹,可以删除该行,在这种情况下,您的

javac HW1.java
java HW1

命令应该可以正常工作。否则,Dici在根文件夹中使用java hw1.HW1的指示应该有效。

答案 2 :(得分:0)

我建议你阅读这篇Oracle文档。

以下是文档链接: http://docs.oracle.com/javase/tutorial/getStarted/problems/

声明如下:

" Microsoft Windows系统上的错误消息 线程" main"中的例外情况java.lang.NoClassDefFoundError:HelloWorldApp 如果收到此错误,则java无法找到您的字节码文件HelloWorldApp.class。"