русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Упаковка файлов изображений внутрьJAR-архива


Дата добавления: 2015-06-12; просмотров: 1596; Нарушение авторских прав


При разработке приложения, все изображения мы размещали в корне диска C:\ и при загрузке указывали путь к ним:

try

{

fon = ImageIO.read(new File("c:\\fon.png"));

}

catch (Exception ex) {}

После завершения отладки приложения путь к изображениям мы изменяли с корня диска С:\на путь к текущей папке:

try

{

fon = ImageIO.read(new File("./fon.png"));

}

catch (Exception ex) {}

Далее выполняли запуск приложения, чтобы файлы с расширением*.classскомпилировались снова. И после этого производили создание JAR-архива.

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

Во-первых:путь к изображениям необходимо указать относительно JAR-архива. Допустим, в процессе разработки путь был указан относительно корня дискаC:\

try

{

fon = ImageIO.read(new File("c:\\fon.png"));

}

catch (Exception ex) {}

Теперь необходимо записать так:

try

{

fon = ImageIO.read(pole.class.getResource("fon.png"));

}

catch (Exception ex) {}

Вместо создания объектаnew File() теперь используется pole.class.getResource(), имя файла указывается внутри двойных кавычек без указания пути к файлу. Первое слово–это имя класса, внутри которого происходит загрузка изображения. В данном случае–это класс с названием pole:

fon = ImageIO.read(pole.class.getResource("fon.png"));

Такие изменения необходимо произвести во всех классах вашего проекта, в которых происходит загрузка изображений. После всех изменений приложение необходимо обязательно запустить! В этот момент файлы с расширением *.class скомпилируются снова, но уже с учетом выполненных изменений. Во время запуска вы увидите, что ваши изображения не отобразились. Это правильно!



Во-вторых:необходимо открыть Мой компьютер и перейти к папке, в которой находится пакет JAVA. По умолчанию она находится:

C:\Program Files (x86)\Java\ или C:\Program Files\Java\(см. рис. 2). Внутри нее вы увидите папку с названием JDK–это пакет разработчика (см. рис.2). Переходим в нее и внутри в папку BIN (см. рис. 3).

Рис. 2

Рис. 3

В папке BIN находятся файлы, при помощи которых среда разработки Eclipseвыполняет запуск программы Java,компиляцию в файлы с расширением *.class, создание JAR-архива. Рассмотрим их:

1. javaw.exe –выполняет запуск программы на исполнение

2. javac.exe –выполняет компиляцию программы из файлов с расширением *.javaв файлы промежуточного байт-кода с расширением *.class

3. jar.exe–выполняет созданиеJAR-архива и размещает внутри него файлы с расширением*.classи дополнительные ресурсы (изображения и т.д.)

Среда разработки Eclipseавтоматически использует эти файлы при необходимости.

Нам понадобится утилита для создания JAR-архива–файлjar.exe

Внутри папки BIN необходимо создатьBAT-файл, назовем его make.bat.

В этом файле запишем:

jar cfm zmeika.jar manifest.mf *.class *.png

Это вызов утилиты jar.exe с указанием дополнительных параметров. При таком вызове в JAR-архив поместятся все файлы с расширением*.classи *.png, которые будут находиться в текущей папке BIN. Имя архива будетzmeika.jar. Сохраним файл make.bat (см. рис. 4).

Рис. 4

Далее при создании архивов вам придется изменять только имяJAR-архива:

jar cfm zmeika.jar manifest.mf *.class *.png

Все остальное будет оставаться без изменений.

В файле make.bat мы указали файл с наименованием manifest.mf –это так называемый файл манифеста,в этом файле указывается имя главного класса нашего приложения. Главный класс содержит метод main() –это точка входа (запуска) приложения.

Внутри папки BIN создадим файлmanifest.mf, внутри файла запишем:

Main-Class: zmeika

Сохраним файл (см. рис. 5).

Рис. 5

В данном случае zmeika–это название главного класса приложения. При записи текста внутри файла manifest.mfнеобходимо соблюдать некоторые требования:

1. Регистр букв имеет значение!

2. После двоеточия необходимо поставить пробел.

3. После указания имени главное класса необходимо выполнить перевод строки, нажав клавишу Enter.

При малейших ошибках в файле manifest.mf –создать JAR-архив НЕ ПОЛУЧИТСЯ!!!

Далее при создании архивов, в файле манифеста, вам придется изменять только имя главного класса.

В-третьих:в папку BIN, где уже находятся файлы manifest.mf, make.batнеобходимо поместить все файлы с изображениями (с расширением *.png).

При создании JAR-архива все файлы с расширением *.pngиз папки BINбудут упакованы. Поэтому в папке BINне должно быть лишних PNGфайлов.

В-четвертых:в папку BIN, где уже находятся файлы manifest.mf, make.batнеобходимо поместить все файлы вашего приложения с расширением *.class.

При создании JAR-архива все файлы с расширением *.classиз папки BINбудут упакованы. Поэтому в папкеBINне должно быть лишних файлов с расширением *.class. Все файлы с расширением *.class находятся в папке вашего проекта в папке BIN (см. рис. 6). Именно из этой папки их необходимо скопировать. Получится копирование из одной папки BIN в другую папку BIN.

Рис. 6

В-пятых:необходимо запустить файл make.bat. Это выполняется двойным щелчком левой клавиши мыши на файле make.bat (см. рис. 7).

Рис. 7

Файл make.batзапустит утилитуjar.exe и передаст ей необходимые параметры, в частности имя файла манифеста (manifest.mf). Если все выполнится правильно, то внутри папки BINпоявится JAR-архив с указанным именем (см. рис. 8).

Рис. 8

Этот JAR-архив содержит файлы изображений внутри себя. Теперь для передачи игры пользователю достаточно передать только один файл. JAR-архив–это запускаемый на исполнение, но все-таки архив. Поэтому из него можно выполнить извлечение обычным архиватором. Если вы это сделаете, то увидите его содержимое(см. рис. 9).Внутри архива находятся файлы с расширением *.class,файлы с расширением *.png и папка META-INF. В папке META-INF находится файл MANIFEST.MF (файл манифеста).

Внимание!!!При запуске JAR-архива могут возникать проблемы, если он расположен в папке, путь к которой содержит русские буквы. В этом случае JAR-архив может не запуститься. Такая проблема возможна в зависимости от операционной системы и текущей версии виртуальной машины Java.

Рис. 9



<== предыдущая лекция | следующая лекция ==>
Правила игры Пасьянс-Косынка | Работа со списком в Java


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.101 сек.