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

时间:2014-03-04 02:14:11

标签: java command-line

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

下面的

是我的包结构,在我的包中我有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的

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

3 个答案:

答案 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

让我知道你是怎么过的!