无法找到或加载主类package.class

我知道这个问题已经多次回答,但不幸的是我无法找到正确的答案。

下面是我的包结构,在我的包中我有SimpleTest.java

d:\的JUnit的\ src \ junitfaq \ SimpleTest.java

在d:\ junit \ src>里面我尝试编译SimpleTest.java并使用下面的命令成功编译。

d:\ junit \ src> javac junitfaq / SimpleTest.java

但是当我尝试使用下面的命令行运行程序时

d:\ junit \ src> java junitfaq.SimpleTest

发生此错误。 错误:无法找到或加载主类junitfaq.SimpleTest

我尝试通过使用此命令访问junitfaq包来运行它

d:\ junit \ src \ junitfaq> java -cp。 SimpleTest的

程序运行完美。 一点帮助将非常感激。

您是否已声明您的SimpleTest类是junitfaq包的成员? 如果你有,你应该能够从src目录运行它,比如java junitfaq.SimpleTest但如果你试图在junitfaq目录中运行它,你应该得到这样的错误: Exception in thread "main" java.lang.NoClassDefFoundError: SimpleTest (wrong name: junitfaq/SimpleTest)

确保您的SimpleTest类以package junitfaq;开头package junitfaq;

编辑:这是一个包含以下评论的工作示例。

login @ domain:〜/ temp> mkdir src
login @ domain:〜/ temp> cd src
login @ domain:〜/ temp / src> mkdir junitfaq
login @ domain:〜/ temp / src> nano junitfaq / SimpleTest.java

当我退出nano时,SimpleTest.java的内容如下:

 package junitfaq; public class SimpleTest { public static void main(String[] args) { System.out.println("Test"); } } 

login @ domain:〜/ temp / src> javac junitfaq / SimpleTest.java
login @ domain:〜/ temp / src> java junitfaq.SimpleTest
测试

听起来你有类路径问题; 您应该仔细检查类文件的位置,目录/包结构,尝试运行java命令的位置以及执行期间指定的任何类路径。

例如,以下内容适用于我:

 $ mkdir junitfaq $ cat >junitfaq/SimpleTest.java package junitfaq; public class SimpleTest { public static void main(String[] args) { System.out.println("Hello, world!"); } } ^D $ javac junitfaq/SimpleTest.java $ java junitfaq.SimpleTest Hello, world! $ java -cp . junitfaq.SimpleTest Hello, world! $ 

不是很明显,但我注意到你的一条评论中有拼写错误 – 你还应该仔细检查你是否按预期运行命令。

trialYou可以尝试将您的java和类文件与libaray文件夹(如果有)一起放在C:\目录中名为“trial”的新文件中,然后使用以下命令编译现有的java文件 – >

C:\ trial> javac -cp .;库文件夹* SimpleTest.java

(然后)

C:\ trial> java -cp .;库文件夹* SimpleTest

让我知道你是怎么办的!