如何使用 Java-11 运行 apache fop?

How to run apache fop with Java-11?

将 fop 和 Java11 与 Maven 和 Eclipse 结合使用,我可以从 xsl-fo 输入创建 PDF 文档。
但前提是我从 Eclipse 中启动程序。
我的 pom.xml 建议 Maven 将所有用于依赖项的 jar 文件复制到 lib 文件夹。准备从命令行 运行。
当我尝试从命令行启动程序时

java -p target/rutil-0.0.1-SNAPSHOT.jar;target/lib -m eu.ngong.rutil/eu.ngong.rutil.App

我明白了 引导层初始化出错 java.lang.module.FindException:无法导出 target\lib\batik-script-1.14.jar 的模块描述符。 我可以向 pom.xml 中的 fop 依赖条目添加排除项,但只能看到下一个失败消息(两个模块中的同一个包)等等。

如何像 Eclipse 那样从命令行启动我的程序? 我的目标是在夜间构建批次中使用 fop 运行。

您可能会找到我的程序的绝对最小版本 here

您可以将所有非模块化工件放在类路径中,并且不支持派生它们的模块信息。这些将主要被视为 unnamed module.

java --module-path target/rutil-0.0.1-SNAPSHOT.jar;target/lib/fop-2.6.jar \
     --class-path target/lib \
     --module eu.ngong.rutil/eu.ngong.rutil.App

我已在 中对您遇到的错误进行了解释。在使用 modulepath 上的所有其他工件的同时解决它的直接方法可能是破解 jar 以从 MANIFEST.MF.

中删除条目