Windows XP上Java URL("file://")无法使用

10

由于某些原因,以下代码在Windows XP上无法正常工作。

new URL("file://" + tempfile.getAbsolutePath());

我正在使用Java 1.6版本。

Java(TM) SE Runtime Environment (build 1.6.0_31-b05)
Java HotSpot(TM) Client VM (build 20.6-b01, mixed mode, sharing)

然而,在OS X(Lion)和Java 1.6中,相同的代码可以正常工作。

java version "1.6.0_29"
Java(TM) SE Runtime Environment (build 1.6.0_29-b11-402-11M3527)
Java HotSpot(TM) 64-Bit Server VM (build 20.4-b02-402, mixed mode)

操作系统为Linux (Linux 2.6.32-38-generic #83-Ubuntu x86_64 GNU/Linux),并且安装了Java 1.6版本。

java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)

根据这篇文章,上面的代码应该可以工作。


从我记得的来看,你可能需要在Windows上使用file:///的符号表示法。试一下,看看是否起作用。 - mcfinnigan
3个回答

21

在本地主机上,URL看起来像:

file:///Folder

第三个斜杠非常重要...

在Windows中,文件夹的样子是这样的:

file:///C:/path/

17

File.toURI().toURL()有什么问题?为什么要重新发明轮子?


1
仅返回翻译文本:它不能用于属性/ yaml文件。 - naXa stands with Ukraine

7
以下代码应该避免所有麻烦。
new File(tempfile.getAbsolutePath()).toURI().toURL()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接