2016-06-11 9 views
1

itext 7コードの最初の例を実行すると、ステップ4でNoClassDefFoundErrorが発生します。 誰かがエラーが発生している場所を指し示すことができますか?iText 7 Hello Worldの例がNoClassDefFoundErrorで失敗する

import com.itextpdf.kernel.pdf.PdfWriter 
import com.itextpdf.kernel.pdf.PdfDocument 
import com.itextpdf.layout.Document 
import com.itextpdf.layout.element.Paragraph 

//step 1 - writer 
writer = new PdfWriter(new FileOutputStream(DEST)) 
//step 2 - PDF 
pdf = new PdfDocument(writer) 
//step 3 - document 
document = new Document(pdf) 
//step 4 - content 
document.add(new Paragraph ('Hello World!')) 

これは

java.lang.NoClassDefFoundError: Could not initialize class com.itextpdf.io.font.FontProgramFactory 

コードは、それがIO、カーネルやや疎 あり、レイアウトジャーがロードされている理由であるグルービーで実行されて生成されます。

答えて

2

iText 7のインストール方法はビデオを見ましたか?このエラーメッセージは、IO jarを含めていないことを示しています。私の前提は、カーネルとレイアウトjarをCLASSPATHに追加したことですが、io jarファイルを追加することは見落としてしまったことになります。

これらはジャンプスタートチュートリアルのBefore we start: installing iText 7セクションで文書化され、依存関係の一部です:

<dependency> 
    <groupId>com.itextpdf</groupId> 
    <artifactId>kernel</artifactId> 
    <version>7.0.0</version> 
    <scope>compile</scope> 
</dependency> 
<dependency> 
    <groupId>com.itextpdf</groupId> 
    <artifactId>io</artifactId> 
    <version>7.0.0</version> 
    <scope>compile</scope> 
</dependency> 
<dependency> 
    <groupId>com.itextpdf</groupId> 
    <artifactId>layout</artifactId> 
    <version>7.0.0</version> 
    <scope>compile</scope> 
</dependency> 

としては、ビデオで説明した、IOジャーは、カーネルジャーの依存性です。

あなたは書く:

IO、カーネルとレイアウトのjarファイルがロードされています。

あなたが共有したエラーメッセージは、IO jarがロードされていないことを示しています。 com.itextpdf.io.font.FontProgramFactoryクラスがこのjarに格納されます。

+0

私は持っていて、彼らは... –

+0

@johnrenfrewそうでないとエラーメッセージが表示されます。エラーメッセージが間違っているか、またはエラーメッセージが間違っています。開発者として、私はエラーメッセージが人間が何を言っているかよりも私に何を伝えるのかをより信頼しています。私は自分自身の考えよりもエラーメッセージを信頼しています。 –

+0

エラーは確かに私のものですが、あなたが考えるものではありません。例の一番下にあるSLF4Jに依存していますが、IDEを使用するとロードされていると想像しています。私はなぜそれがエラーを消すことが含まれているのか分からない.. –

関連する問題