java.lang.NoClassDefFoundError 的 itext7 Hello World 示例
itext7 Hello World example with java.lang.NoClassDefFoundError
我在 centos 7 上使用 maven,并从 iText7 开始。
我按照教程编辑 pom 文件和 Hello World 项目,但是当我输入
java -cp target/xxx-1.0-SNAPSHOT.jar com.itext.app.App
我得到了
java.lang.NoClassDefFoundError:
com/itextpdf/layout/element/IBlockElement
因为我是在 linux 上创建 Java 项目的新手,所以我不知道问题出在哪里。
我猜你的 运行time jar 不包含捆绑的 iText,并且 iText 没有被添加到你的类路径中。两个选项:
使用 Maven Assembly 或 Shade 插件来捆绑 fat/uber jar。默认情况下,Maven 不捆绑依赖项。通过使用其中一个插件,Maven 将生成一个包含 POM 中指定的所有依赖项的 jar。然后您可以 运行 您的应用程序使用相同的命令行。有关详细信息,请参阅此 SO 问题:Building a fat jar using maven
在 运行 时将 iText 添加到类路径。您的命令行如下所示:
java -cp /path/to/iText-7/;target/xxx-1.0-SNAPSHOT.jar com.itext.app.App
我在 centos 7 上使用 maven,并从 iText7 开始。 我按照教程编辑 pom 文件和 Hello World 项目,但是当我输入
java -cp target/xxx-1.0-SNAPSHOT.jar com.itext.app.App
我得到了
java.lang.NoClassDefFoundError: com/itextpdf/layout/element/IBlockElement
因为我是在 linux 上创建 Java 项目的新手,所以我不知道问题出在哪里。
我猜你的 运行time jar 不包含捆绑的 iText,并且 iText 没有被添加到你的类路径中。两个选项:
使用 Maven Assembly 或 Shade 插件来捆绑 fat/uber jar。默认情况下,Maven 不捆绑依赖项。通过使用其中一个插件,Maven 将生成一个包含 POM 中指定的所有依赖项的 jar。然后您可以 运行 您的应用程序使用相同的命令行。有关详细信息,请参阅此 SO 问题:Building a fat jar using maven
在 运行 时将 iText 添加到类路径。您的命令行如下所示:
java -cp /path/to/iText-7/;target/xxx-1.0-SNAPSHOT.jar com.itext.app.App