[英]Java loading of resources fails when running executable maven jar file: unable to resolve “file:/…”
[英]java, loading of resources fails: unable to resolve file:/my-jar.jar!/folder/my-file
從我制作的 Java 應用程序中,我構建了相應的 jar 文件。
我復制jar文件中的所有資源。
例如,如果在src/main/resources
中存在以下資源/folder/my-file
,則將其復制到具有相同路徑的 jar 中。
但是如果我執行 jar,資源的加載就會失敗。
具體來說,它會像這樣拋出一個 IOException
java.io.IOException: 無法將“file:/my-jar.jar!/folder/my-file”解析為類路徑、文件名或 URL
我應該如何加載資源?
如果我在 eclipse 中運行 java 應用程序,一切正常,即使資源加載正確。
編輯:
我通過以下方式獲取資源的路徑:
MyClass.class.getResource("/folder/my-file").getPath();
資源的加載是由外部庫完成的,我所要做的只是指定路徑。
在這種情況下,我會嘗試:
YourClass.class.getClassLoader().getResourceAsStream("folder/my-file");
這將獨立於您的執行環境將InputStream
返回到您的資源。
如果你有這樣的結構:
src/main/Begin.java
src/main/folder/icon.png
在 Begin.java 中試試這個:
Begin.getClass().getResource("/main/folder/icon.png");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.