Java 什么导致IllegalArgumentException:URI授权组件具有未定义的主机异常?

Java 什么导致IllegalArgumentException:URI授权组件具有未定义的主机异常?,java,exception,javafx,unc,Java,Exception,Javafx,Unc,我们有一个简单的桌面应用程序,它显示一个about对话框,其中有一个指向我们的应用程序的路径,在一些罕见的情况下,客户会测试我们的应用程序,如下所示 try { final URL jarPath = ClassLoader.getSystemClassLoader().getResource( "." ); final Path parent = Paths.get( jarPath.toURI() ).getParent();//Here the exception occours.

我们有一个简单的桌面应用程序,它显示一个about对话框,其中有一个指向我们的应用程序的路径,在一些罕见的情况下,客户会测试我们的应用程序,如下所示

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路径


有谁能告诉我,什么时候这个例外会失败?或者甚至是确定当前应用程序路径的更好方法,它也适用于网络驱动器等环境?

jarPath返回的URL是什么?如下。当我打印URL时,它显示文件://[servername]/transfer/[applicationname]/app,但这是从网络驱动器开始的工作案例。不幸的是,在它失败之前,我不知道它的值,因为我还不能重现错误。谢谢你的消息来源!我来看看!jarPath返回的URL是什么?以下是。当我打印URL时,它显示文件://[servername]/transfer/[applicationname]/app,但这是从网络驱动器开始的工作情况。不幸的是,在它失败之前,我不知道它的值,因为我还不能重现错误。谢谢你的消息来源!我来看看!