6

私はiTextの初心者です。これは、このライブラリを使用する私の最初のプロジェクトです。

本質的に大きなテーブルを含むPDFを作成していますが、コンパイル中に、このClass NotFoundエラーが発生します:org.bouncycastle.asn1.ASN1Primitiveのクラスファイルが見つかりません

私は基本的な機能だけを使用していて、PDF署名機能にも触れていないので、混乱しています。エラーを修正するにはどうすればよいですか?

私が使用しているもの:

  • JDK 1.7
  • iText 5.3.5
  • extrajars 2.2(bcmail-jdk15-146.jar、bcprov-jdk15-146.jar、およびbctsp-jdk15-146.jarを提供します)

私はこれらのインポートで、1つのクラス内でのみiTextを使用しています。

import com.itextpdf.text.BadElementException;
import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Chunk;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Font;
import com.itextpdf.text.Image;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;

それが役に立ったら、NetBeans内でプロジェクトを実行すると、コンパイルされて正常に実行されることを明確にしたいと思います。単一の実行可能jarファイル(dist / libを含む)にコンパイルしようとすると、エラーが表示されます

これは、エラーが表示されるbuild.xmlターゲットです。

<target name="single_jar" depends="jar">

    <property name="store.jar.name" value="Final"/>

    <property name="store.dir" value="store"/>
    <property name="store.jar" value="${store.dir}/${store.jar.name}.jar"/>

    <echo message="Packaging ${application.title} into a single JAR at ${store.jar}"/>

    <delete dir="${store.dir}"/>
    <mkdir dir="${store.dir}"/>

    <jar destfile="${store.dir}/temp_final.jar" filesetmanifest="skip">
        <zipgroupfileset dir="dist" includes="*.jar"/>
        <zipgroupfileset dir="dist/lib" includes="*.jar"/>

        <manifest>
            <attribute name="Main-Class" value="${main.class}"/>
        </manifest>
    </jar>

    <zip destfile="${store.jar}">
        <zipfileset src="${store.dir}/temp_final.jar"
        excludes="META-INF/*.SF, META-INF/*.DSA, META-INF/*.RSA"/>
    </zip>

    <delete file="${store.dir}/temp_final.jar"/>

</target>
4

2 に答える 2

11

現在のiTextバージョン(5.3.0以降)はBouncyCastle 1.47を使用していますが、1.46を提供しています。それは小さな一歩のように見えますが、これらのBCバージョンの間には大幅な変更があります。賢明なバージョン管理なら、それを2.0と呼んでいたでしょう。

依存関係を更新してください。

于 2012-12-26T16:32:19.417 に答える
4

私はjava.lang.NoClassDefFoundError: org/bouncycastle/asn1/ASN1Primitive依存しているときに得ていた:

    <dependency>                    
        <groupId>com.itextpdf.tool</groupId>
        <artifactId>xmlworker</artifactId>
        <version>5.5.0</version>
    </dependency>
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>itextpdf</artifactId>
        <version>5.5.0</version>
    </dependency>

新しい弾む城のアーティファクトを明示的に含める必要がありました。

    <dependency>
        <groupId>org.bouncycastle</groupId>
        <artifactId>bcprov-jdk15on</artifactId>
        <version>1.50</version>
    </dependency>
    <dependency>
        <groupId>org.bouncycastle</groupId>
        <artifactId>bcpkix-jdk15on</artifactId>
        <version>1.50</version>
    </dependency>        
    <dependency>                    
        <groupId>com.itextpdf.tool</groupId>
        <artifactId>xmlworker</artifactId>
        <version>5.5.0</version>
    </dependency>
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>itextpdf</artifactId>
        <version>5.5.0</version>
    </dependency>
于 2014-05-07T14:47:01.917 に答える