Работа с jar архивом для начинающих

Написано 14 December, 2009

Как создать работающее приложение Java?

Лучше всего, если у вас будет один jar файл, который можно запустить на любом компьютере, поддерживающем Java т.е. с предустановленной виртуальной java машиной

При этом этот файл вы сможете запустить из любого места.

Как сделать такой jar файл?
Рассмотрим простейший пример для начинающих.

Предположим, что вы написали код для игры в шахматы.
Т.е. у вас есть какой-то набор классов:
Board.java, Main.java, Figures.java

Все ваши классы относятся к пакету chess и соответcтвенно находятся в каталоге chess

Сам этот каталог находится в вашем рабочем каталоге - откуда вы можете вызвать java.exe без параметров и получить список опций команды. В нашем случае, это каталог c:/jwork

Все ресурсы вашей программы хранятся в подкаталоге res каталога chess. Это могут быть картинки, настройки и пр..

Конкретно картинки ваших шахмат, например картинки короля, королевы и пр.. хранятся в подкаталоге images подкаталога res

В общем теперь структура каталогов должна быть вам понятна.
Давайте упакуем ее в jar

Скомпилируйте ваши классы.

Затем:

Сначала создадим файл mymanifest (без расширения) со следующим содержимым:

Manifest-Version: 1.2
Main-Class: chess.Main
Created-By: 0.0.1 (O. V. Dorozhko)

И поместим этот файл в каталог chess

Затем создадим *.bat файл следующего содержания:

jar cvfm my_chess.jar chess/mymanifest chess/*.class chess/res

И запустим его на выполнение из каталога c:\jwork т.е. вашего рабочего каталога

Выполненная команда создаст my_chess.jar. Вы найдете его в вашем рабочем каталоге

Можем запустить его.. Увы, наши шахматы исчезли так как картинки фигур да и самой доски оказались не найдены.

Если вы создавали BufferedImage таким путем:

String fname = “/res/images/king.png”;
BufferedImage img = ImageIO.read(new File(fname));

То это не будет работать в том случае когда ресурсы надо доставать из jar файла.

Правильно использовать следующую конструкцию:

JarResources jar = new JarResources (”chess.jar”);
Image logo = Toolkit.getDefaultToolkit().createImage (jar.getResource (”chess\res\images\king.png”);

Более подробно вы можете прочитать об этом
здесь

Создана бактерия, превращающая СО2 в топливо

Написано 12 December, 2009

Генетики из Университета Калифорнии в Лос Анжелесе вывели генетически модифицированных бактерий, потребляющих углекислый газ и производящих вместо него жидкое топливо в виде изобутанола. Для реакции бактериям требуется лишь солнечный свет полный текст

Источник: Cybersecurity.ru

Таких бы бактерий побольше и решили бы проблему с недостатком нефти

Про макросы справочной системы

Написано 14 November, 2009

Или макросную справочную систему…

Что интересно в шахматных проигрывателях, так это компактная запись отображаемых перед пользователем действий.

Давайте вместо шахмат возьмем Photoshop и будем учить пользователей фотошопу. Получится?

Рассмотрим два варианта:

Предположим мы будем снимать на видео действия учителя и записывать звук. Делайте мол то-то и то-то получите вот такое вот. Объем такого видео будет очень большой.

А теперь предположим что у нас есть возможность записать действия в формате подобном шахматному и построить урок по текстовой записи объем которой пару десятков килобайт

И даже с озвучкой, при условии что мы включим в программу голосовой чтец текста, например такого “А теперь посмотрите на экран”, включенного в нашу запись.

Будет ли продаваться обучающее ПО построенное на подобном принципе? Думаю, будет.

Вот, например, я хочу музыку составлять на компьютере

Я скачиваю какой-нибудь музыкальный комбайн и пытаюсь в нем разобраться. Как это происходит обычно?
Или методом тыка или изучаю хелп

А вот хелп интерактивный демонстрирующий научит меня сочинению музыки куда как быстрее.

Понимаете, если мы уменьшим многократно объем обучающего видео, то сможем многократно увеличить объем файлов помощи

Фактически(!) мы сможем автоматически роботом составлять видеосправочник помощи. Путем перебора.

Смотрите: у нас есть набор функций интерфейса. Мы комбинируем их в любом порядке а оператор комментирует и при необходимости направляет/корректирует результат. Все - обучающий файл готов.

Итак - есть программа, есть файл, описывающий некоторое действие в программе - можно назвать это макрос помощи.

Следующая страница »