簡體   English   中英

Java類路徑和相對路徑

[英]Java Classpath and relative paths

如果在java類路徑中有相對路徑,那么這只是搜索當前工作目錄。 對清單文件中聲明的類路徑是否保持相同。 在清單文件中它是相對於jar所在的目錄?

防爆。 CMDLINE

java -cp somejar.jar

要么

表現

Class-Path: somejar.jar

如果你說-cp somejar.jar你將somejar.jar添加到類路徑中。 它只會嘗試在您鍵入命令時從當前所在的目錄中找到somejar.jar

如果你在Manifest中說

Class-Path: somejar.jar

你是說將jar, somejar.jar添加到清單所在目錄的類路徑中(也就是在jar中)。

另請注意,使用-jar,-cp或-classpath指定類路徑時,將覆蓋系統變量CLASSPATH。

更多細節可以在這里找到, http://docs.oracle.com/javase/tutorial/deployment/jar/downman.html

你實際上提到過兩種不同的情況:

情況1

java -cp foo/bar/somejar.jar ...

在這種情況下,相對於當前目錄解析JAR(或其他)的相對路徑。

案例#2

java -jar foo/bar/somejar.jar ...

其中somejar.jar包含

Class-Path: anotherjar.jar

在這種情況下,相對於當前目錄(如上所述)解析“foo / bar / somejar.jar”,但相對於包含“somejar.jar”的目錄解析“anotherjar.jar”。

(旁白:我的理解是當通過-cp$CLASSPATH包含JAR文件時,會遵守Manifest Class-Path:屬性,但它只會影響從該JAR加載的類的依賴關系...請參閱“查找類”鏈接下面。)

參考文獻:

暫無
暫無

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

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