[英]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.