我知道这个问题已经多次回答,但不幸的是我无法找到正确答案。
下面的是我的包结构,在我的包中我有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的
程序运行完美。非常感谢一点帮助。
答案 0 :(得分:3)
您是否已声明您的SimpleTest类是junitfaq包的成员?如果你有,你应该能够从java junitfaq.SimpleTest
这样的src目录运行它,但如果你试图从junitfaq目录中运行它,你应该得到这样的错误:Exception in thread "main" java.lang.NoClassDefFoundError: SimpleTest (wrong name: junitfaq/SimpleTest)
确保您的SimpleTest类以package junitfaq;
编辑:这是一个包含以下评论的工作示例。
登录@域:〜/温度> mkdir src
登录@域名:〜/温度> cd src
登录@域名:〜/温度/ SRC> mkdir junitfaq
登录@域名:〜/温度/ SRC> nano junitfaq / SimpleTest.java
当我退出nano时,SimpleTest.java的内容如下:
package junitfaq;
public class SimpleTest {
public static void main(String[] args) {
System.out.println("Test");
}
}
登录@域:〜/温度/ SRC> javac junitfaq / SimpleTest.java
登录@域名:〜/温度/ SRC> java junitfaq.SimpleTest
测试
答案 1 :(得分:1)
听起来你有类路径问题;您应该仔细检查类文件的位置,目录/包结构,尝试运行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!
$
不是明显的belabor,但我注意到你的一条评论中有拼写错误 - 你还应该仔细检查你是否按预期运行命令。
答案 2 :(得分:0)
trialYou可以尝试将您的java和类文件与libaray文件夹(如果有)一起放在C:\目录中名为“trial”的新文件中,然后使用以下命令编译现有的java文件 - >
C:\试验> javac -cp .;库文件夹* SimpleTest.java
(然后)
C:\试验> java -cp .;库文件夹* SimpleTest
让我知道你是怎么过的!