gpt4 book ai didi

java - 从一个 jar 文件访问另一个 jar 文件时出现问题

转载 作者:行者123 更新时间:2023-12-02 08:40:49 24 4
gpt4 key购买 nike

我编写了一个 Java 程序,该程序使用 Apache PDFBox jar 应用程序中的类。我的编译类和 PDFBox jar 文件位于目录中。我可以成功运行:

java -cp .;pdfbox-app.jar Athena NPCGenerator -pdf

但是,当我打包自己的程序并尝试以类似的方式在同一位置运行它时,会失败:

java -cp .;pdfbox-app.jar -jar Athena.jar NPCGenerator -pdf

错误消息:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/pdfbox/pdm
odel/PDDocument
at CharacterPDF.writePDF(CharacterPDF.java:49)
at NPCGenerator.printToPDF(NPCGenerator.java:302)
at NPCGenerator.makeAllNPCs(NPCGenerator.java:278)
at NPCGenerator.main(NPCGenerator.java:316)
at Athena.runApp(Athena.java:88)
at Athena.main(Athena.java:104)
Caused by: java.lang.ClassNotFoundException: org.apache.pdfbox.pdmodel.PDDocumen
t
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 6 more

我需要做什么来解决这个问题?

最佳答案

如果您对 java 使用 -jar 标志,它需要一个可执行的 jar。然后它将忽略命令行上的类路径并从 jar list 中读取类路径。

您可以将 pdfbox-app.jar 与 main-class 属性一起添加到 Athena.jar 中的 list 中。您甚至可以在 list 中指定 jar 的相对或绝对路径。

Main-Class: Athena
Class-Path: pdfbox-app.jar

或者您不能使用 -jar 并通过命令行将 Athena.jar 添加到类路径中。在这种情况下,您还需要在命令行上指定主类,因为在这种情况下 java 将不会读取 list 。

java -cp .;pdfbox-app.jar;Athena.jar Athena NPCGenerator -pdf

关于java - 从一个 jar 文件访问另一个 jar 文件时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61401297/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com