无法找到或加载主类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
让我知道你是怎么办的!