2012-03-30 42 views
7

Vì một số lý do, mã sau không hoạt động trên Windows XP.URL Java ("tệp: //") không hoạt động trên Windows XP

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

Tôi đang sử dụng 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) 

Tuy nhiên, cùng mã chỉ hoạt động tốt trong OS X (Lion) và 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) với 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) 

Dựa trên this mã trên sẽ hoạt động.

+0

Từ những gì tôi nhớ, bạn có thể cần phải sử dụng một tập tin: /// ký hiệu trên cửa sổ. Hãy thử nó và xem nó có hoạt động không. – mcfinnigan

Trả lời

15

Sự cố với File.toURI(). ToURL() là gì? Tại sao tái tạo lại bánh xe?

14

Trên localhost URL trông giống như:

file:///Folder 

Rất quan trọng dấu gạch chéo thứ ba ...

Trên Windows Folder trông giống như:

file:///C:/path/ 
5

Các mã sau nên tránh tất cả các phức tạp

new File(tempfile.getAbsolutePath()).toURI().toURL() 
Các vấn đề liên quan