[英]When running a java command with the -jar option, can you supply additional libraries using -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.