2012-03-30 14 views
7

Por alguna razón, el siguiente código no funciona en Windows XP.Java URL ("file: //") no funciona en Windows XP

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

Estoy usando 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) 

Sin embargo, el mismo código sólo funciona bien en OS X (Lion) y 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-x86_64 Ubuntu GNU/Linux) con 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) 

Basado en this el código anterior debería funcionar.

+0

Por lo que recuerdo, puede que necesite usar una notación de archivo: /// en Windows. Pruébalo y ve si funciona. – mcfinnigan

Respuesta

15

¿Cuál es el problema con File.toURI(). ToURL()? ¿Por qué reinventar la rueda?

14

en el host local de la URL será similar a:

file:///Folder 

muy importante la tercera barra ...

En Windows, la carpeta se parece a:

file:///C:/path/ 
5

El siguiente código debe evitar todas las molestias

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