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