簡體   English   中英

從命令行運行帶依賴項的jar

[英]Run jar with dependencies from the command line

Java可以從命令行運行jar文件,如下所示:

java -jar foobar.jar

但是,如果foobar.jar依賴於baz.jar ,則baz.jar調用baz.jar任何類,上面將拋出異常,因為JVM無法知道在哪里查找這些類。

但是,手冊頁(Linux上的OpenJDK 8)聲明:

使用-jar選項時,指定的JAR文件是所有用戶類的源,並忽略其他類路徑設置。

如果重新打包不是一個選項,有沒有辦法從命令行運行帶有依賴項的jar文件?

使用java -jar ,不在命令行上指定依賴項。 您有兩種方法可以將jar添加到類路徑:

  1. 使用主類調用java並在命令行上添加jar文件,包括foobar.jar

     java -cp foobar.jar:baz.jar com.mycompany.MainClass 
  2. foobar.jar的清單文件中包含依賴foobar.jar (然后運行java -jar

     Class-Path: baz.jar 

我相信你在foobar.jar中只有一個主要課程。 如果它大於1,那么您需要指定執行哪一個。
在執行jar之前,您可以簡單地設置類路徑

export CLASSPATH=$CLASSPATH:/JAR_LOCATION/bar.jar


暫無
暫無

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

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