2012-02-13 4 views
2

Я сделал приложение поворота, которое использует файлы изображений, расположенные в папке с именем «res» в текущем каталоге. Для этого я делаю что-то вроде этого:Как создать файл jar с зависимостями

BufferedImage img=ImageIO.read(new File(new String(System.getProperty("user.dir")+"\\res\\back.png"))); 

Это прекрасно работает, когда я запускаю его из командной строки. Но когда я делаю файл jar из этого, он не находит папку res, хотя папка res находится внутри банки. Однако, когда я копирую папку res в том же каталоге, что и jar, он работает снова. Я хочу один файл jar без какой-либо зависимости от внешней папки.

ответ

0

нагрузки от возможно классов:

InputStream in = getClass().getResourceAsStream("/res/back.png"); 
BufferedImage img = ImageIO.read(in); 
+0

Это дает следующее исключение: java.lang.IllegalArgumentException: вход == NULL! Есть идеи ?? – dotnetguy

+0

Никогда не думайте. Это сработало. Большое спасибо. :) Просто из уроности, почему метод, который я использовал, не работает? – dotnetguy

+0

Поскольку операционная система не знает о файлах внутри банки. Что касается O/S, то jar - это файл, который он может видеть, и он не видит содержимое jar как отдельные файлы. –

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