0

我得到了一些我想测试一些功能的源代码示例。不幸的是,我在执行程序时遇到问题:

11:41:31 [linqus@ottsrvafq1 example]$ javac -g  test/test.java
11:41:52 [linqus@ottsrvafq1 example]$ java -classpath . test/test
Exception in thread "main" java.lang.NoClassDefFoundError: test/test (wrong name: test)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
        at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: test/test.  Program will exit.
11:42:57 [linqus@ottsrvafq1 example]$

我可以做什么?

4

5 回答 5

4

我对 Java 没有太多经验,但据我所知,您应该使用完全限定的 Java 类名来运行文件:

// Assuming that the class is called "test" and is not in any package
java -classpath test test

// If "test" is actually in the package "test" :
java -classpath . test.test
于 2013-01-14T10:51:37.767 回答
1

要使用 java 命令运行类,您需要使用 . 代替 /

假设是您的 javac 命令建议test的包中的一个类。test

例如

java -classpath . test.test

此外,您应该遵循 java 命名约定并以大写字母开头命名您的类。应该是test.Test为了更容易区分类和包

您的编译是正确的,因为 / 应该在使用 javac 时使用

于 2013-01-14T10:51:48.373 回答
1

您需要将其运行为:

java -classpath test test

第一个test.class文件所在目录的名称。第二个test是要运行的 Java 类的名称。通常你需要在这里指定完整的包名,但是由于你的类在全局包中,只要传递test到这里就可以了。

于 2013-01-14T10:52:36.057 回答
0

将代码读入 IDE(eclipse、intellij、netbeans)可能会突出问题。

您的代码似乎缺少一些简单的东西(即包名称)。

于 2013-01-14T10:58:23.657 回答
0

可能是大小写问题,您的类名与您从命令中调用的不同。假设您的班级名称是Test并且您test在命令行中提供。

http://javarevisited.blogspot.in/2011/06/noclassdeffounderror-exception-in.html

于 2013-01-14T11:10:17.373 回答