Java NoClassDefFoundError错误

use*_*est 2 java manifest

我编写了下面的基本代码并保存到一个名为pdf.java的文件中.

package pdf;

import java.util.*;
import java.io.*;
import com.lowagie.text.DocumentException;
import org.xhtmlrenderer.pdf.ITextRenderer;
import java.util.regex.*;

public class pdf {

    public static void main(String[] args) throws IOException, DocumentException{
        System.out.println("Hello World2!");
    }

}
Run Code Online (Sandbox Code Playgroud)

然后我像这样编译它,

javac pdf.java -cp core-renderer.jar:iText-2.0.8.jar
Run Code Online (Sandbox Code Playgroud)

这似乎工作,因为我有一个pdf.class文件.然后我尝试使用以下命令运行它.

java pdf
Run Code Online (Sandbox Code Playgroud)

我得到了以下输出,

Exception in thread "main" java.lang.NoClassDefFoundError: pdf (wrong name: pdf/pdf)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

提前致谢.

Col*_*ert 5

你的意思java pdf.pdf是不是因为你的pdf班级在pdf包中?

如果你的pdf类在pdf包中,它应该在pdf目录中(如果你的MyClass类在my.package包中,它应该在我的/ package /目录中).

要么进入pdf目录并使用该-d选项,javac -d . pdf要么进入父目录并执行javac pdf/pdf.java`