Во первых, если у вас нет среды разработки Eclipse, надо скачать здесь пакет SWT. Лучше конечно установить себе Eclipse. В эклипсе библиотека SWT лежит в папке plugins. Пакет представляет собой архив классов. Нам понадобится папка org и динамические библиотеки (dll которые). Допустим, у нас имеется папка Game. В этой папке находится папка src с подпапкой babgamegui и файлом Main.java в ней. Создадим папку compile в папке Game. Чтобы скомпилировать java файл нам потребуется ввести следующую команду находясь в папке Game: javac -cp ./org.eclipse.swt.win32.win32.x86_3.2.1.v3235e_swg20070503.jar; -d ./compile src/babgamegui/Main.java Название библиотеки естественно зависит от версии Eclipse, так что внимательней. Теперь в папке compile находятся наши class файлы. Самое интересное, открываем файл org.eclipse.swt.win32.win32.x86_3.2.1.v3235e_swg20070503.jar (он может быть свежее версией или наоборот) архиватором и распаковываем папку org и dll'ки в папку Game. Создаём Java архив в папке Game. Напомню, что babgamegui - не просто папка, наш класс находится в пакете, а физически он представляет собой папку. Создаём манифест. Кстати, по умолчанию, в манифесте нет строки main class (Main-Class:), утилита jar не создаёт её автоматически, если её не попросить об этом специально. Файл манифеста назовём - manif. Code Main-Class: babgamegui.Main Manifest-Version: 6.6.6
Не забываем опустить каретку на строку ниже после строки Manifest-Version: 6.6.6 Напомню, что конец файла должен быть обозначен символами перевода строки и возврата каретки. (ну это просто Enter нажать в конце последней строки, если кто не в курсе) Пишем в командной строке jar cmf manif Main.jar * создаётся файл Main.jar Можете открыть его архиватором и посмотреть, что туда попало. Запуск: java -jar Main.jar Обязательно в каталоге где происходит запуск наличие динамических библиотек. (они весят немного) Вообще, можно указать любую папку с dll'ками при помощи параметра java.library.path (пример использования ниже) Без упаковки запуск осуществляется так: java -cp "./org.eclipse.swt.win32.win32.x86_3.2.1.v3235e_swg20070503.jar";./ -Djava.library.path="./" babgamegui.Main Динамические библиотеки: swt-awt-win32-3235.dll swt-gdip-win32-3235.dll swt-wgl-win32-3235.dll swt-win32-3235.dll По идее нам нужна только последняя, ну да ладно, пусть будут все.
Вот такое запутанное объяснение получилось, если возникнут вопросы, не стесняйтесь, спрашивайте. Что-то типа этого должно быть у вас: Командные файлы созданы для удобства, но можно и без них. Я экспериментировал с тремя например. Папки compile не вижу что-то, видимо удалил после упаковки.
|