0

我正在尝试执行 Test.class

Test.java 的代码

package pkg;  
public class Test {        
  public static void main(String args[]) {        
    System.out.println("This is a test");  
  }        
}  

我使用它编译了 Test.java,javac -d . Test.java 之后创建了“pkg”目录。然后我做了以下

cd pkg

java Test

此时我收到以下错误消息。

C:\Users\varung\J\pkg>java Test
Exception in thread "main" java.lang.NoClassDefFoundError: Test (wrong name: pkg
/Test)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

有人可以帮忙吗?

4

1 回答 1

3

尝试这样做:

javac -d . Test.java
java pkg.Test

java命令将完全限定的类名作为其主要参数。Java 中的完全限定名称包括包声明(您的类的完全限定名称是pkg.Test)。

由于java还需要正确的包目录结构,因此您必须从将源代码编译到的目录中执行命令,在本例中为..

于 2013-08-15T04:34:44.507 回答