2011-03-24 62 views
1

我正在嘗試生成pdf文件。NoClassDefFoundError在「unpackaged」測試類中擁有自己的.java

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命令的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. 
+0

嘗試'$ javac -jar iText-5.0.6.jar HelloWordPDF.java'&'$ java -jar iText-5.0.6.jar HelloWordPDF' – 2011-03-24 07:28:00

+0

您應該在軟件包目錄之外,然後執行run命令。 – ashishjmeshram 2011-03-24 07:28:21

+0

試試這個java -cp iText-5.0.6.jar ;. home.Jagan.HelloWordPDF – ashishjmeshram 2011-03-24 07:32:27

回答

1

你必須也包括你想,因爲它是隻搜索的iText-5.0.6.jar內執行到類路徑中的類的目錄,因此請嘗試使用

java -cp iText-5.0.6.jar;. HelloWordPDF 

如果HelloWordPDF.class位於當前目錄中。

+0

java -cp /home/Jagan/iText-5.0.6.jar/home/Jagan/HelloWordPDF 我甚至都是這樣試過但沒有結果 – Jagan 2011-03-24 07:36:15

+0

你好!我知道了謝謝! 「java -cp iText-5.0.6.jar :. HelloWordPDF」。對於追加類路徑冒號應該使用(不是分號) – Jagan 2011-03-24 07:49:35

+2

@jagan - 類路徑分隔符是os依賴的。 「:」是unix-ish「,」是窗戶。 – jtahlborn 2011-03-24 16:47:04

相關問題