URL-адрес Java ("file: //") не работает в Windows XP - PullRequest
10 голосов
/ 30 марта 2012

По какой-то причине следующий код не работает в 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_64GNU / 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)

На основе этот приведенный выше код должен работать.

Ответы [ 3 ]

19 голосов
/ 30 марта 2012

На локальном хосте URL выглядит следующим образом:

file:///Folder

Очень важен третий слеш ...

В Windows папка выглядит так:

file:///C:/path/
17 голосов
/ 30 марта 2012

В чем проблема с File.toURI().toURL()? Зачем изобретать велосипед?

7 голосов
/ 30 марта 2012

Следующий код должен избежать всех неприятностей

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