java - 非windows系统中绝对路径的URL等价物是什么?

标签 java xml url birt

从 Linux 操作系统运行 BIRT 时出现以下异常。

引起:org.eclipse.datatools.connectivity.oda.OdaException:无协议(protocol):/home/lsingh/reporting/tmp/execution1279514184559/TDReport.xml

其中“/home/lsingh/reporting/tmp/execution1279514184559/TDReport.xml”是我的 XML 数据文件。

当我查看 BIRT 中“org.eclipse.birt.report.data.oda.xml.util.XMLDataInputStreamCreator”类的代码时,我发现异常来自以下代码段。

catch (MalformedURLException e)
{
  throw new OdaException(e.getLocalizedMessage());
}

这意味着代码试图将上面指定的文件路径转换为 ​​URL,但失败了。

所以我的问题是如何将非 Windows 路径转换为 ​​URL? 它应该以 file:///为前缀吗?

最佳答案

无论是否是 Windows,本地文件的所有 URL 都以 file:// 开头。那是协议(protocol)前缀。

所以你的文件将是:

file:// + /home/lsingh/reporting/tmp/execution1279514184559/TDReport.xml = file:///home/lsingh/reporting/tmp/execution1279514184559/TDReport.xml

关于java - 非windows系统中绝对路径的URL等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3279045/

相关文章:

java - 我如何构建我的 jar 文件,以便使用该库的用户能够在 Eclipse 中看到 javadoc

c# - Linq to Xml 仅打印第一个后代值

Apache RewriteRule 重定向,带有 url 编码

javascript - 使用 JavaScript 评估 URL

ios - 翠鸟不显示图像

java - 我做错了什么会得到这个额外的输出吗?

java - 为什么 Pattern.quote 总是返回带引号的字符串?

java - 第二次打开同一连接时,HttpUrlConnection.getOutputStream 导致 "Handshake message sequence violation, 11"异常

大文件上的 xmlstarlet sel

c# - 为什么 SqlClient 在传递 SqlXml 时使用不必要的 XML 转换?