新手:执行错误

时间:2013-08-15 04:31:25

标签: java

我正在尝试执行Test.class

Test.java代码

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

我使用javac -d . Test.java编译了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)

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

尝试这样做:

javac -d . Test.java
java pkg.Test

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

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