使用fop和Java 11以及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
我得到这个错误:
初始化 Boot 层java.lang.module时出错。FindException:无法为target\lib\batik-script-1.14.jar派生模块描述符。
我可以向pom.xml中的fop依赖项添加排除,但只能看到下一个失败消息(两个模块中的同一个包)等等。
我怎样才能像Eclipse那样从命令行启动我的程序?
我的目标是在每夜构建批处理运行中使用fop。
你可能会发现我的程序here的一个绝对最小版本。
1条答案
按热度按时间qvk1mo1f1#
您可以将所有非模块化的工件放在类路径上,而不支持派生它们的模块信息。这些将主要被视为未命名的模块。
我已经在this answer中为您所面临的错误提供了解释。在使用modulepath上的所有其他工件的同时,解决这个问题的直接方法可以是破解jar以从
MANIFEST.MF
中删除条目。