簡體   English   中英

如何在命令行上訪問 Java 依賴項?

[英]How to access Java dependency on command line?

我有一個中等大小的小型 Java 應用程序,它可以選擇使用 Apache PDFBox 庫(以下簡稱“pdfbox-app.jar”)讀取和導出 PDF 文件。 所有文件,包括此資源,都存儲在一個平面文件夾中。

從 JAR 文件調用時,這工作正常:

D:\Prog\!GitHub\Arena>java -jar Athena.jar NPCGenerator -p
OED NPC Generator
-----------------
Writing Gwenllian-ElfFtr1Wiz1.pdf

從我的 IDE (jGrasp) 運行時,它同樣可以正常工作。

但是當從命令行調用時失敗,在它的 JAR 之外:

D:\Prog\!GitHub\Arena>java NPCGenerator -p
OED NPC Generator
-----------------
Writing Eoin-HalflingFtr1.pdf
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/pdfbox/pdmodel/PDDoc
ument
        at CharacterPDF.writePDF(CharacterPDF.java:49)
        at NPCGenerator.printToPDF(NPCGenerator.java:294)
        at NPCGenerator.makeAllNPCs(NPCGenerator.java:270)
        at NPCGenerator.main(NPCGenerator.java:308)
Caused by: java.lang.ClassNotFoundException: org.apache.pdfbox.pdmodel.PDDocument
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.j
ava:641)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoader
s.java:188)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
        ... 4 more

我應該怎么做才能在它自己的 JAR 之外的命令行上運行它?

您應該將 pdfbox jar 和任何其他依賴項放在類路徑中:

java -classpath .;pdfbox-app.jar NPCGenerator -p

沒有它,Java 不知道在哪里尋找org/apache/pdfbox類。 它查找相對於默認類路徑(即. ,當前目錄)的.class文件,但不查找 jar 內部。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM