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 没有被添加到你的类路径中。两个选项:

  1. 使用 Maven Assembly 或 Shade 插件来捆绑 fat/uber jar。默认情况下,Maven 不捆绑依赖项。通过使用其中一个插件,Maven 将生成一个包含 POM 中指定的所有依赖项的 jar。然后您可以 运行 您的应用程序使用相同的命令行。有关详细信息,请参阅此 SO 问题:Building a fat jar using maven

  2. 在 运行 时将 iText 添加到类路径。您的命令行如下所示:

java -cp /path/to/iText-7/;target/xxx-1.0-SNAPSHOT.jar com.itext.app.App