Как связать изображения в jar-файл

13
задан skaffman 16 February 2010 в 23:12
поделиться

1 ответ

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

Я не уверен, что это именно связан с вашей проблемой, но я нашел TortoureSVN иногда может быть довольно медленный при работе с хранилищами в которых много файлов. Это проявляется в файле tsvncache.exe процесс занимает много памяти. tsvncache.exe сканирует файлы и папки и связывает знакомые значки с ними для обозначения измененные/проигнорированные файлы и т.д.

Исправление для этого - сообщить Tortoise SVN кэшировать только те папки, которые вы являетесь работая в и игнорируя остальные. Кому для этого щелкните правой кнопкой мыши на проекте папку и выберите TortoureSVN- > Параметры настройки - > Наложение значков. Для параметра «Исключить пути» установлено значение c: * и d: * (в основном игнорировать все фиксированные диски) и Включить пути, установленные для папка проектов.

-121--885977-

Возможно, можно попытаться создать объект Bitmap из hBitmap и затем удалить его.

Bitmap bitmap = Bitmap.FromHBitmap(hBitmap);
bitmap.Dispose();
-121--3126678-

Здесь есть два вопроса:

  1. Как заставить NetBeans включить файл изображения в банку, созданную при построении проекта?

  2. Как получить доступ к файлу изображения из банки?

Этот ответ относится к NetBeans 6.8 и касается обоих

Предположим, что у вас есть проект Java Application Project на основе муравьев.

Вот вид 'Files' проекта

JP
+ images
  + test.jpg
+ nbproject
+ src
  + jp
    + Main.java
+ test
+ build.xml
+ manifest.mf

Внутри вашего Main.java у вас есть следующий код:

public static void main(String[] args) throws IOException {
    // find the file in the file system.. probably not a good idea
    File f = new File("images/test.jpg");
    System.out.println(f.getCanonicalPath()+" "+f.exists());

При запуске этого проекта из NB получаются следующие выходные данные:

/export/home/vkraemer/NetBeansProjects/JavaApplication2/images/test.jpg true

Когда вы запускаете код, упакованный в банку, вы получаете что-то подобное:

bash-3.2$ pwd
/export/home/vkraemer/nbhg/web-main
bash-3.2$ java -jar /export/home/vkraemer/NetBeansProjects/JavaApplication2/dist/JavaApplication2.jar
/export/home/vkraemer/nbhg/web-main/images/test.txt false

Чтобы получить что-то лучшее при выполнении банки, необходимо сделать следующее:

Добавьте каталог образов в качестве исходного корня для проекта .

Щелкните правой кнопкой мыши по проекту и выберите предмет Properties. Появится диалоговое окно.

Выберите «Sources» в списке, расположенном в левой части диалогового окна. Это приведет к изменению содержимого панели в правой части диалогового окна.

Нажмите кнопку «Добавить папку...» рядом с таблицей «Исходные папки пакетов». Появится FileChooser.

Выберите папку изображений и нажмите кнопку OK. Для папки изображений будет добавлена таблица.

Нажмите кнопку «ОК» в диалоговом окне «Свойства проекта», чтобы принять изменения и закрыть диалоговое окно.

Измените код на Class.getResource () .

public static void main(String[] args) throws IOException {
    // find the file in the file system.. probably not a good idea
    File f = new File("images/test.jpg");
    System.out.println(f.getCanonicalPath()+" "+f.exists());
    URL url = Main.class.getResource("/test.jpg");
    System.out.println(url);

Когда вы запускаете проект из среды IDE, вы должны видеть что-то подобное:

/export/home/vkraemer/NetBeansProjects/JavaApplication2/images/test.jpg true
file:/export/home/vkraemer/NetBeansProjects/JavaApplication2/images/test.jpg

При запуске кода, упакованного в банку, вы получите что-то подобное:

bash-3.2$ pwd
/export/home/vkraemer/nbhg/web-main
bash-3.2$ java -jar /export/home/vkraemer/NetBeansProjects/JavaApplication2/dist/JavaApplication2.jar
/export/home/vkraemer/nbhg/web-main/images/test.jpg false
jar:file:/export/home/vkraemer/NetBeansProjects/JavaApplication2/dist/JavaApplication2.jar!/test.jpg

После того, как вы получите URL для файла test.jpg, вы можете использовать ImageIcon (URL) для создания значка

29
ответ дан 1 December 2019 в 20:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: