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

问题描述:

我有一个带有少量.java文件的文件夹:Triangle.java,Circle.java,Square.java等。主要方法在HW1的.java。所有的文件都被设置在包hw1中。从命令行运行Java - 无法找到主类

它在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时也是如此。当我尝试将整个文件夹放在classpath中时,也是如此。

我在做什么错?

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

它看起来像你使用

package hw1; 

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

javac HW1.java 
java HW1 

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

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

这里是文档链接:“在线程上的Microsoft Windows系统 异常错误消息 ”

主要“ java.lang.NoClassDefFoundError: http://docs.oracle.com/javase/tutorial/getStarted/problems/

据称为HelloWorldApp的 如果收到此错误,java找不到您的字节码文件,HelloWorldApp.class。