0
以下代碼公開了這個錯誤,我知道我可以只是尾部getFile()的結果& getPath(),但我正在尋找一個大的東西更優雅健壯。我希望能夠在默認情況下以及在用戶選擇/配置路徑中查找包含jar的文件夾,以查找&加載資源。尋找java.net.URL不一致的解決方法/ bug
import java.net.MalformedURLException;
import java.net.URISyntaxException;
import java.net.URL;
public class UrlBug {
UrlBug() {
try {
final URL resourceRoot = this.getClass().getClassLoader().getResource(".");
System.out.println(resourceRoot.getFile());
System.out.println(resourceRoot.getPath());
System.out.println(resourceRoot.toURI());
System.out.println(resourceRoot.toExternalForm());
System.out.println(resourceRoot.toString());
new URL(resourceRoot.getFile());
} catch (final URISyntaxException e) {
e.printStackTrace();
} catch (final MalformedURLException e) {
e.printStackTrace();
}
}
public static void main(final String[] args) {
new UrlBug();
}
}
以「錯誤」
/C:/Users/Me/workspaces/.../target/classes/ <-- Malformed filename
/C:/Users/Me/workspaces/.../target/classes/ <-- Malformed path
file:/C:/Users/Me/workspaces/.../target/classes/
file:/C:/Users/Me/workspaces/.../target/classes/
file:/C:/Users/Me/workspaces/.../target/classes/
java.net.MalformedURLException: no protocol:
/C:/Users/Me/workspaces/scratch/target/classes/ at
java.net.URL.<init>(URL.java:585) at
java.net.URL.<init>(URL.java:482) at
java.net.URL.<init>(URL.java:431) at
scratch.UrlBug.<init>(UrlBug.java:20) at
scratch.UrlBug.main(UrlBug.java:39)
下面產生的輸出,我很願意接受的錯誤是在我的代碼。不過我認爲這是一個URL類的問題,並且Kohsuke似乎是agree
是什麼讓你覺得這是一個錯誤? –
你指的是什麼錯誤/不一致? – stridecolossus
@PaulTomblin如果你運行代碼,你會得到一個異常:java.net.MalformedURLException:沒有協議:/ c:/ src/other/stackoverflow/ at java.net.URL。(URL.java:585) at java.net.URL。 (URL.java:482) at java.net.URL。 (URL.java:431) UrlBug。 (UrlBug.java:15) UrlBug.main(UrlBug.java:23) –
mttdbrd