Когда начинаешь разбираться с тем, как донести свое творение до конечного пользователя (хотя в моем случае это еще преждевременно), или хотя бы до другого компа - в целях отладки... заявления о кроссплатформенности java невозможно больше воспринимать иначе, как с иронической усмешкой. В теории все замечательно. На практике намного сложнее.
Первый подход к снаряду окончился не слишком удачно. Выяснилось - просто затолкать все необходимое в "исполнимый" jar - не достаточно. Мешают яйца нативные библиотеки. Их затолкать туда тоже можно, а вот извлечь - только ручками, сами не извлекутся. Т.е. начинающему разработчику, который написал простую программку придется писать свой загрузчик библиотек, который выцарапает из jar'а (или тырнета) нужные либы (в соответствии с ОС и железом), где-то их разместит и потом загрузит. При том что не факт, что это вообще возможно - это первое что приходит в голову, задача не тривиальная и возможны различные грабли.
Разумеется кто-то и как-то эти проблемы решал и существуют готовые инструменты (со своими граблями и глюками конечно). На заметку:
Начнем с последнего, но не факт, что на нем остановимся - просто первым под руку попался.
Итак... предполагается что Eclipse у нас уже стоит. Тем не менее, если мы хотим получить приложение для нескольких платформ сразу, нужно немного пошевелиться.
- идем страницу загрузки Eclipse http://www.eclipse.org/downloads/ и ищем Eclipse Classic.
- там рядышком есть ссылка Other downloads, идем туда и выбираем свою версию эклипсы - у меня 3.х - значит идем еще дальше и выбираем там
- находим среди большой кучи всякой всячины ссылочку на загрузку DeltaPack и загружаем.
- Этот самый дельта-пак распакуем и положим аккуратненько в сторону - он нам понадобится.
- Запускаем Eclipse (дельта-пак пока не трогаем) и создаем новый workspace.
- Копируем туда наш проект, а также (в данном случае) JOGL под разные платформы И импортируем.
- Идем в Window->Preferences->Plug-in Development->Target platform. Выбираем Running Platform, жмем Edit.
- Жмем Add, Выбираем Directory и жмем Next.
- Выбираем папку в которой у нас лежит Delta Pack, находится масса плагинов. Finish. Хм... не так уж и много. Еще раз Finish и OK.
То мы все развлекались, подготавливались, теперь займемся делом. Выбираем наш проект, New->Product configuration... Вот тут автор исходного мануала сжульничал. У него эта конфигурация уже была и на ее основе он сделал новую. У нас ее нет и как делать не совсем понятно. Смотрим его проект... мммать его так и об косяк, тудыть его и перетудыть... вовремя спохватились.
Речь ни коим образом не идет о том что готовое приложение можно взять и на счет раз вставить в эклипсу как плагин - с ним нужно основательно покувыркаться, чтобы оно было заточено именно под работу в качестве эклипсовского плагина. Как говорится - предчувствия его не обманули...
Ладно, пройдемся по его проекту до конца... и получим на выходе программу, которая практически ничего не делает, но занимает 19Мб в архиве! При этом она работает в специфическом окружении и большой вопрос какие ограничения это окружение накладывает. И сразу встает ребром вопрос переносимости этого чуда на андроид.
Резюме - в топку. Я с трудом представляю где и зачем такой монструозный способ может понадобиться.
З.Ы. И так происходит сплошь и рядом. Берешь некий продукт, кувыркаешься с ним (хорошо если пару часов, а иной раз - пару месяцев)... и со вздохом сожаления откладываешь в сторону. Не то. Категорически не подходит.
Комментариев нет:
Отправить комментарий