未找到iText和org.bouncycastle.asn1.ASN1Primitive

phr*_*oto 6 bouncycastle itext classnotfound

我是iText的新手.这是我使用这个库的第一个项目.

我正在构建一个基本上有一个大表的PDF,并且在编译时,我得到了这个Class Not Found错误: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)

我只在一个类中使用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;
Run Code Online (Sandbox Code Playgroud)

如果它有帮助,我想澄清一下,当我在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>
Run Code Online (Sandbox Code Playgroud)

mkl*_*mkl 10

目前的iText版本(自5.3.0开始)使用BouncyCastle 1.47但你提供的是1.46; 即使这看起来只是一小步,但这些BC版本之间存在重大变化; 任何合理的版本管理都会称之为2.0.

请更新依赖项.