簡體   English   中英

如何在Linux中設置CLASSPATH以讓Java查找jar文件?

[英]How to set CLASSPATH in Linux to let java find jar file?

在Linux下,我嘗試如下運行jar文件:

java -jar plantuml.jar -testdot

同時將CLASSPATH設置為以下任何一項(文件位於/home/user/plantuml.jar ):

export CLASSPATH=/home/user
export CLASSPATH=/home/user/
export CLASSPATH=/home/user/plantuml.jar

無論哪種情況,無論我如何定義CLASSPATHjava命令都將給出錯誤Unable to access jarfile plantuml.jar 我在這里做錯了什么?

您必須在參數-jar之后提供完整路徑。 因此,對於您的示例,您必須致電

java -jar /home/user/plantuml.jar -testdot

僅評估$CLASSPATH以查找其他文件(類/資源),而不查找命令行中定義的jar文件。

export CLASSPATH="/path/to/class_or_jar1":"/path/to/class_or_jar2":"${CLASSPATH}" 

當您通過名稱引用類時,可使用類路徑查找類。 本質上,這是路徑列表(目錄和jar / zip文件),當使用諸如ClassLoader.getResourceAsStream()方法時,JVM需要在其中查找類或其他資源。

命令行上傳遞給-jar選項的值是JAR文件的文件路徑。

因此,如果僅按名稱引用jar文件,它將找不到jar文件。 CLASSPATH中的JAR文件路徑應該是“包含”其他資源的路徑元素。

您需要在這里做的是

  1. 嘗試執行jar時,提供jar文件的完整路徑
  2. 將classpath設置為jar文件的路徑,然后運行java命令,給出要執行的主類的名稱。

也許您缺少主類的名稱或罐子的路徑。 您是否嘗試過執行它:

java -jar full_path/plantuml.jar package.YourClass -testdot

您的程序是否取決於其他課程? 如果是,則可能要添加-cp參數。

暫無
暫無

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

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