Подтвердить что ты не робот

Встраивание ресурсов (изображений, звуковых фрагментов и т.д.) В проект Java, затем использование этих ресурсов

Я искал метод встраивания ресурса в проект java (используя Eclipse v3.6.0), затем используя этот внедренный ресурс в элементе управления (например, JLabel). Я видел методы ссылки ресурсов из файловой системы. После того, как проект был разработан, я хотел бы опубликовать приложение как исполняемый файл. Следует отметить, что эти исполняемые файлы будут развернуты/запущены на платформах Windows, * NIX и Linux.

Я знаю, что это можно сделать в мире Visual Studio, но я очень незнакомо, как это сделать в Java/Eclipse IDE. В качестве побочного вопроса, как получить Eclipse для создания проекта в качестве исполняемого файла, чтобы его можно было запустить?

Любая помощь очень ценится.

Марк

ОБНОВЛЕНИЕ 1:

Основываясь на ответе BalusC, я хотел бы поделиться кодом, который я должен решить. Мои классы находятся под пакетом "Viking.Test", а затем я поместил файл изображения в пакет "Viking.Test.Resources". Все это делается в Eclipse для импорта изображения в проект.

  • Я импортировал изображение, щелкнув правой кнопкой мыши на Project → Import → General/File System для источника импорта.
  • Выбрал папку, содержащую изображение для импорта
  • Выбрано "Project/src/Viking/Test/Resources" для параметра "Into folder"
  • Не изменил ни одного из параметров и нажал "Готово"

В исходном файле я добавил следующий код, чтобы вставить изображение в JLabel (LblLogo)

try
{
  ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
  InputStream input = classLoader.getResourceAsStream(
    "Viking/Test/Resources/MyImage.jpg");
  Image logo = ImageIO.read(input);
  LblLogo = new JLabel( new ImageIcon( logo ) );
  LblLogo.setBounds(20, 11, 210, 93);
  getContentPane().add(LblLogo);
}
catch ( IOException e ) {  }
4b9b3361

Ответ 1

Просто поместите эти ресурсы в структуру source/package и используйте ClassLoader#getResource() или getResourceAsStream(), чтобы получить их как URL или InputStream из пути к классам с полным набором пакетов.

ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream input = classLoader.getResourceAsStream("/image.gif");
// ...

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

InputStream input = getClass().getResourceAsStream("image.gif");

В качестве побочного вопроса, как получить Eclipse для создания проекта в качестве исполняемого файла, чтобы его можно было запустить.

Rightclick Java Project > Export > Runnable JAR File.