我正在尝试执行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)
有人可以帮忙吗?
答案 0 :(得分:3)
尝试这样做:
javac -d . Test.java
java pkg.Test
java
命令以fully qualified类名作为主要参数。 Java中的完全限定名称包括包声明(类的完全限定名称为pkg.Test
)。
由于java
还需要一个正确的包目录结构,因此必须从编译源代码的目录中执行命令,在本例中为.
。