NoClassDefFoundError在“unpackaged”测试类中使用自己的.java

时间:2011-03-24 07:22:48

标签: java itext

我正在尝试生成pdf文件。

import java.io.*;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;

class HelloWordPDF
 {      

             public static void main(String []args) throws FileNotFoundException,DocumentException
            {


                          Document document=new Document();
                          PdfWriter.getInstance(document,new FileOutputStream("hello.pdf"));
                          document.open();
                          document.add(new Paragraph("Hello Pdf"));
                          document.close();
            }
    }

此java程序位于 /home/Jagan/HelloWordPDF.java 目录中 和jar文件 /home/Jagan/iText-5.0.6.jar

成功编译 $ javac -cp iText-5.0.6.jar HelloWordPDF.java

但是当我试图运行 $ java -cp iText-5.0.6.jar HelloWordPDF

像这样发生了一个例外

Exception in thread "main" java.lang.NoClassDefFoundError: HelloWordPDF/java
Caused by: java.lang.ClassNotFoundException: HelloWordPDF.java
        at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
        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)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:334)
Could not find the main class: HelloWordPDF.java. Program will exit.

1 个答案:

答案 0 :(得分:1)

您还必须将要执行的类的目录包含在类路径中,因为它只在iText-5.0.6.jar中搜索,因此请尝试使用

java -cp iText-5.0.6.jar;. HelloWordPDF 

如果HelloWordPDF.class在当前目录中。