Java URL("file://") 在 Windows XP 上不起作用

Posted

技术标签:

【中文标题】Java URL("file://") 在 Windows XP 上不起作用【英文标题】:Java URL("file://") doesn't work on Windows XP 【发布时间】:2012-04-14 01:59:36 【问题描述】:

由于某种原因,以下代码在 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)

基于this 上面的代码应该可以工作。

【问题讨论】:

据我所知,您可能需要在 Windows 上使用 file:/// 表示法。试试看它是否有效。 【参考方案1】:

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

【讨论】:

不能在属性/yaml文件中使用【参考方案2】:

在 localhost 上,URL 如下所示:

file:///Folder

第三个斜线很重要...

在 Windows 上,文件夹如下所示:

file:///C:/path/

【讨论】:

【参考方案3】:

下面的代码应该避免所有的麻烦

new File(tempfile.getAbsolutePath()).toURI().toURL()

【讨论】:

以上是关于Java URL("file://") 在 Windows XP 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章

怎么用java判断一个url是否PDF类型的文件

文件流:"fopen","fclose",“ftell”"fseek","fgets","fprintf&qu

java 删除文件后缀名

File类

File类

java 用正则 筛选掉特殊符号