我们有一个简单的桌面应用程序,它显示了一个关于我们应用程序路径的对话框,以及在一些罕见的客户测试我们的应用程序的情况下
try
{
final URL jarPath = ClassLoader.getSystemClassLoader().getResource( "." );
final Path parent = Paths.get( jarPath.toURI() ).getParent();//Here the exception occours.
}
catch( URISyntaxException ex )
{
...
}
导致此异常:
java.lang.IllegalArgumentException: URI authority component has undefined host
at sun.nio.fs.WindowsUriSupport.fromUri(WindowsUriSupport.java:139)
at sun.nio.fs.WindowsFileSystemProvider.getPath(WindowsFileSystemProvider.java:92)
at java.nio.file.Paths.get(Paths.java:138)
不幸的是,我无法用我们当地的环境重现这个错误。我的第一个猜测是,应用程序是从一个没有本地映射的网络驱动器启动的,但是对话框甚至正确处理了UNC Pathes。
任何人都可以告诉我,这可能会因为这个例外而失败吗?或者甚至是确定当前应用程序路径的更好方法,它也适用于网络驱动器等环境?