我有下面的問題: 我嘗試從jar中加載文件,但我有相同的文件位於相同的相對路徑:「res/rtrconfig」作爲jar中的文件。我如何忽略外部文件並獲取jar文件路徑?我無法刪除外部文件,因爲我的代碼的其他部分需要它。 我有什麼至今:如何在Java之外的文件之前從jar中加載資源?
ClassLoader loader = Thread.currentThread().getContextClassLoader();
URL url = loader.getResource(path);
//check if file is in jar or not
if (url == null) {
System.err.println("FATAL: Properties file not found.Stopping the server.");
System.exit(-1);
}
if (!url.getProtocol().equals("jar")){
System.err.println("Properties found outside jars.Please delete " + url.getPath() + " and re-start the server");
System.exit(-1);
}
的代碼檢查這部分,如果該文件是建立在罐子或路徑。 我不知道如何配置URL來查看路徑中文件之前的jar文件。 謝謝你的時間。
上面的代碼返回什麼?不是在jar中找到的資源嗎?如果不是,你傳遞的路徑的值和jar中的資源的全名是什麼? –
「在jars之外發現的屬性。請刪除」+這裏是絕對路徑+「並重新啓動服務器」。 res \ rtrconfig是資源的名稱 – nucandrei