2013-03-27 30 views
11

Sau đây cho một dấu gạch chéo hàng đầu trước tên đĩa. Làm cách nào để tránh điều đó?getResource đặt một hàng đầu/trước tên đĩa bằng cách sử dụng java 1.7 windows 7

String pngpath = getClass().getResource("/resources/lena.png").getPath(); 
System.out.println("pngpath = "+pngpath); 

Cung cấp:

pngpath = /C:/Users/jgrimsdale/Documents/NetBeansProjects/HelloCV/build/classes/resources/lena.png 
+1

gì xảy ra khi bạn loại bỏ các dấu gạch chéo hàng đầu từ 'tuyên bố getResource' của bạn? – nattyddubbs

+1

Tôi tin rằng đường dẫn vẫn hợp lệ, ngay cả với hàng đầu '/'. –

+1

@SotiriosDelimanolis Không phải trong một số ngữ cảnh nhất định. –

Trả lời

-1

bạn có thể làm điều này sử dụng mã này.

System.out.println("pngpath = "+pngpath.substring(1,pngpath.length())); 
+2

điều này sẽ mang lại một filenotfound trên Linux, nơi cắt giảm hàng đầu là cần thiết. Câu trả lời của @diogosantana là nền tảng độc lập hơn –

15

Sử dụng:

String pngpath = getClass().getResource("/resources/lena.png").getFile(); 
File file = new File(pngpath); 
System.out.println(file.getAbsolutePath()); 
Các vấn đề liên quan