簡體   English   中英

Java與jar一起運行時不遵循-cp選項的類路徑規范

[英]Java not honoring the classpath specification with -cp option when running with a jar

我正在運行以下程序:

java -cp /deploy/conf -jar test.jar

test.jar有一個試圖從位於/ deploy / conf中的文件中加載屬性的類,如下所示:

Thread.currentThread().getContextClassLoader().getResourceAsStream("config.properties")

事情是我從線程的類加載器和系統類加載器中打印出類路徑,並且都不包含用-cp選項指定的值/deploy/conf

如何確保Java程序將使用-cp選項指定的值傳遞給線程的類加載器?

從帶有-jar選項的java 工具文檔中:

使用此選項時,JAR文件是所有用戶類的源,而其他用戶類路徑設置將被忽略。

通常,這意味着您需要使用清單類路徑條目。 在這種情況下,您不能使用Class-Path條目引用絕對路徑,因此必須將文件作為文件而不是作為資源加載。

您可以嘗試直接使用FileInputStream而不是資源加載過程,例如,使用以下方法:

FileInputStream in = new FileInputStream ("/deploy/conf/config.properties");

暫無
暫無

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

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