2012-03-30 16 views
7

Aus irgendeinem Grund funktioniert der folgende Code unter Windows XP nicht.Java URL ("file: //") funktioniert unter Windows XP nicht

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

Ich benutze 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) 

jedoch der gleiche Code funktioniert gut in OS X (Lion) und 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) mit 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) 

Basierend auf this sollte der obige Code arbeiten.

+0

Soweit ich mich erinnere, müssen Sie möglicherweise eine Datei: /// Notation in Windows verwenden. Probieren Sie es aus und sehen Sie, ob es funktioniert. – mcfinnigan

Antwort

15

Was ist das Problem mit File.toURI(). ToURL()? Warum erfinden Sie das Rad neu?

14

auf dem lokalen Host die URL wie folgt aussieht:

file:///Folder 

Sehr wichtig dritten Schrägstrich ...

unter Windows die Ordner wie folgt aussieht:

file:///C:/path/ 
5

Der folgende Code vermeiden sollte alle Probleme

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