2015-05-23 3 views
-2

Я сделал программу на Java, которая использует множество фотографий (у каждого JButton есть один). Я экспортировал файл .jar из моего проекта и преобразовал его в .exe с помощью JSmooth. Когда я запускаю .exe, все работает отлично на моем компьютере, но на других компьютерах на кнопках нет изображений. Как мне предоставить эти фотографии с помощью .exe, чтобы каждый мог использовать программу, а не только мой компьютер?Преобразование .jar, который использует изображения в .exe

Я искал везде, но я не могу найти ответ, пожалуйста, помогите!

Это пример загрузки изображений:


buttons[index].setIcon(new ImageIcon("cards\\"+(index+1)+".png")); 

+0

Где вы храните фотографии? И как вы загружаете их для JButton? (Покажите код, в котором вы назначаете каждое изображение JButton) –

+0

Я отредактировал исходное сообщение, теперь показывающее код. Мои снимки сохраняются в исходной папке (картах), которую я сделал в затмении. –

+0

Проблема заключается в том, что конструктор 'ImageIcon (String)' загружается из * файла *, но не изнутри файла jar. В дополнение к файлам, Java также имеет более абстрактную концепцию, называемую «ресурсы». Они могут быть получены относительно класса Java, и когда вы помещаете класс Java и изображения в файл jar, которые все еще можно найти. Посмотрите на https://docs.oracle.com/javase/tutorial/deployment/webstart/retrievingResources.html –

ответ

0

Что является причиной того, что вы хотите .jar файл в файл ехе? Если вы помечаете файл Java как исполняемый файл, то вы должны иметь возможность выполнить банку на окнах.

Можно упаковать фотографии в банку. Предпочтительным способом является адепт скрипта, в котором ваша среда разработки создает банку. Какую среду IDE (интегрированную среду разработки) вы используете?

--- отредактирован ---

Следующий код, который нужно в коде Java:

buttons[index].setIcon(new ImageIcon(getClass().getClassLoader().getResource((index+1)+".png"))); 

После создания файла Jar, вы можете открыть его с помощью архиватора (например, WinZip или что-то подобное), и вы копируете изображения в файле jar (root). Если вы хотите сделать эту программу автоматически, вам нужно создать файл ant. И адаптируйте этот файл муравья, чтобы он также копировал png на лету. Более подробную информацию можно найти здесь: https://ant.apache.org/manual/index.html

+0

Спасибо за ответ! Я использую Eclipse, как мне сделать этот скрипт? –

+0

@HarkoslavBarko, я отредактировал ответ. Это вам помогает? –

+0

Спасибо, за помощь. Я пробовал ваш код, но все еще работает только в Eclipse, когда я пытаюсь запустить .jar, он даже не откроет программу. Я распаковал его, и в нем уже были все изображения. –