2012-10-04 3 views
1

Я пытаюсь открыть ресурс в своем приложении Java, вызвав MainClass.class.getResource("/Resources/file.extension") и передав его конструктору Файла с getPath(). Затем, когда я инициализирую новый FileInputStream с File, я получаю FileNotFoundException. Полная трассировка стека выглядит так.Извлечение ресурса в основном Java-методе

java.io.FileNotFoundException: E:\user\Documents\NetBeansProjects\Project name\build\classes\Resources\file.csv (The system cannot find the path specified) 
    at java.io.FileInputStream.open(Native Method) 
    at java.io.FileInputStream.<init>(FileInputStream.java:138) 
    at my.secret.project.MainClass.main(MainClass.java:27) 

Вот мой код.

File file = new File(MainClass.class.getResource("/Resources/file.extension").getPath()); 

... 

InputStream in = new FileInputStream(file); 
+1

Есть файл, указанный в указанном каталоге? –

+0

Я бы использовал 'MainClass.class.getResourceAsInputStream (path)' –

ответ

4

весь код может быть заменен простым:

InputStream in = MainClass.class.getResourceAsStream("/Resources/file.extension"); 

Нет необходимости использовать File. Фактически файл на вашем CLASSPATH может указывать на какое-то место внутри JAR/WAR, что определенно не сработает. Получите добычу у Class.getResourceAsStream().

+0

Ницца, спасибо! Подождите несколько минут, и я приму это как ответ. – MikkoP

Смежные вопросы