2015-10-25 2 views
0

Я пытаюсь экспортировать проект java в eclipse как runnable jar, но по какой-то причине runnable jar не работает. Если я дважды щелкнув исполняемую банку, она ничего не сделает. Я попробовал как извлечь, так и упаковать необходимые библиотеки в сгенерированную банку.Runnable jar, экспортированный с помощью eclipse, не работает, в eclipse он все еще работает

Так что я также попытался экспортировать несколько более простых проектов, которые отлично работали. Самое большое различие - у моего реального проекта есть файлы: изображения и файлы xml.

В коде ссылка на них, как это:

File file = new File("Recources/test.xml"); 
ImageIcon imageIcon = new ImageIcon("Recources/" + num + ".gif"); 

Структура проекта выглядит следующим образом:

enter image description here

Но в исполняемой баночке они выглядят следующим образом:

enter image description here

Спасибо за помощь.

Edit: Я попытался «Ява -jar filename.jar», но теперь он говорит, что не может найти свою папку ресурсов, в то время как в затмении он все еще может найти его.

+0

Вы пытались запустить банку из командной строки, используя 'java -jar .jar'? – AlexPogue

+0

Как я могу убедиться, что он открывается так автоматически, не открывая cmd? – Yadeses

+0

Не могли бы вы предоставить журнал или что-то подобное? Кто-то догадывается, что происходит без него. Я предполагаю, что файлы ресурсов находятся в другом каталоге при запуске из среды разработки, стирает файл .jar. –

ответ

1

Файлы в JAR-файле - это не только файлы, хранящиеся на вашем жестком диске. Если вы включите файлы в JAR, они будут рассматриваться как поток байтов. Поэтому вам нужно использовать разные методы для доступа к этим ресурсам.

//To read/access your XML-File 
BufferedReader read = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("/test.xml"))); 
//To read/access your gif-Files 
ImageIcon icon = new ImageIcon(this.getClass().getResource("/"+num+".gif")); 

«/» не является корневой папка вашей файловой системы, но корневая папка ресурсов внутри JAR.

0

Проблема может заключаться в том, что Java не является программой по умолчанию для запуска банки.

Попробуйте right click -> Open with и выберите Java Runtime, и он должен успешно работать.

Сделайте это программой по умолчанию, чтобы включить двойной щелчок.

Right click -> Properties -> Change -> C:\Program Files\Java\jre7\bin\javaw.exe

Вдохновленный ответ stratwine по адресу https://stackoverflow.com/a/8511277

0

Так что спасибо всем, но похоже, что проблема была не только экспорт. Произошла ошибка, когда я открыл свою программу с помощью cmd, я использовал имя файла для открытия xml и изображений, в то время как я должен был использовать inputStreams: https://docs.oracle.com/javase/tutorial/networking/urls/readingURL.html.

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