категории | RSS

Очень интересная статья, почвященная описанию файла "MANIFEST.MF" внутри jar-архива. Описывается структура данного файла и возможные манипуляции с ним. Статья найдена мной на прсторах глобальной "паутины".
Автор данной статьи Warriorr!
В прикрепленном файле статья в формате .txt.

МАНУАЛ ПО MANIFEST.MF в jar Приложениях!

В каждом JAVA-приложении внутри jar-архива имеется файл под названием "MANIFEST.MF" (всегда внутри папки "META-INF"). Это описатель приложения, содержащий большое количество сведений о приложении, а также данных, необходимых для его нормальной работы. Многие занимаются модификацией ява-приложений, имея только поверхностные знания об этом файле, и этого им вполне хватает... Я же постараюсь познакомить Вас с ним поближе, дабы Вы чувствовали себя с явой поувереннее и имели над ней больше власти... Возможно сведения, которые я приведу ниже, не являются эталоном точности и не содержат всех технических подробностей, которые указал бы JAVA-программист, но я постарался описать все простым человеческим языком на основе полученных мной с опытом знаний... Итак, файл "MANIFEST.MF" лежит внутри jar-архива как я уже сказал в папке "META-INF", и представляет из себя по сути обычный текстовый файл, только с расширением *.mf вместо *.txt... И редактировать его следует как текстовый файл с помощью программ "Yedit" или "Dedit" в кодировке JavaUTF8 (!)
Он заключает в себе список параметров, разделенных между собой переводом строки... Я постараюсь сейчас привести для Вас описание необходимых параметров из этого списка, а также некоторых наиболее распространенных... Внимание! Некоторые сведения, приводимые мной, характерны только для смартфонов Nokia Series60, у других телефонов могут быть свои "заморочки"... Итак, приступим, сначала даю описание параметра, затем его пример:
1
Номер версии стандарта JAR, в соответствии с которым построен данный архив. Этот номер задаётся параметром Manifest-Version и является обязательным. В SDK 1.2значение этого параметра должно быть равно 1.0
Manifest-Version: 1.0
2
Минимальный номер версии утилиты JAR, которая сможет прочитать этот архив. Этот параметр необязателен и имеет название Required-Version.
Required-Version: 2.0
3
Версия компилятора, использовавшегося для компиляции классов и ресурсов программы. Обычно это Apache Ant, поэтому этот параметр будет встречаться в приложениях весьма часто.
Ant-Version: Apache Ant 1.6.5
4) Название и версия инструмента (программы), с помощью которого создавался мидлет. Когда я перепаковываю яву, в этой графе я обычно указываю свой ник winked
Created-By: 1.6.0-b105 (Sun Microsystems Inc.)
5) Название приложения, которое будет отображаться в диспетчере приложений и при его установке (поэтому именно это название будет отвечать за обновление и замену одноименных приложений, так что если Вы хотите чтобы сделанный Вами мод допустим на джимм не заменил при установке уже имеющийся оригинал, а лег рядом, достаточно именно в этой графе в названии изменить хотя бы одну букву.
MIDlet-Name: Jimm
6
Программная версия мидлета, указывается двумя либо тремя числами, разделенными между собой точкой.
MIDlet-Version: 0.5.2
7
Производитель мидлета. Вот здесь "выкаблучиваться" и указывать свои ники при создании модов на чьи-то программы я не советую, лучше оставить настоящего производителя. Могут быть неприятности, если Вы будете на этом пойманы. Плагиат он и в Африке плагиат winked
MIDlet-Vendor: Jimm Project
8) Путь к иконке мидлета внутри jar-архива.
MIDlet-Icon: /icon.png
если иконка в архиве лежит допустим в папке "resources", то путь этот будет выглядеть следующим образом:
MIDlet-Icon: /resources/icon.png
думаю это понятно...
9) Короткая информация о мидлете, в сжатой форме так сказать, что он из себя представляет.
MIDlet-Desсription: J2ME ICQ clone
10
URL на страницу в интернете, где можно узнать больше информации о данном мидлете (официальный сайт программы, оф.сайт ее производителя и т.п.)
MIDlet-Info-URL: https://wap.jimm.org/
11
Следующий параметр содержит в себе следующую информацию (через запятую с пробелом):
- название приложения, которое будет отображаться в меню приложений и внутри самой программы в ее заголовке;
- путь к иконке приложения внутри jar-архива... Именно эта иконка играет главенствующую роль на наших смартах S60, она же и будет отображаться в меню приложений и в самой программе, даже если путь ее будет отличаться от указанного в параметре "MIDlet-Icon" (или даже если этот параметр будет вовсе отсутствовать);
- путь к первостепенному, запускающему классу приложения внутри jar-архива (в пути вместо слэша указывается точка), при модификации ява-приложения этот параметр лучше не трогать, оставить как есть.
MIDlet-1: Jimm, /icon.png, jimm.Jimm
12
Информация, которая будет показана при удалении приложения... Обычно это различная рекламная информация, либо координаты для связи с автором приложения/мода на приложение.
MIDlet-Delete-Confirm: С уважением, Warriorr.
должен также заметить, что кириллица не всегда, не во всех приложениях и не на всех телефонах будет корректно отображаться, поэтому при редактировании файла "MANIFEST.MF" или jad-файла приложения лучше все сведения указывать латинскими буквами...
13) Параметры ява-машины телефона, для которой создавался и на которой должен полноценно запускаться данный мидлет (ява-профиль: MIDP-1.0, MIDP-2.0; конфигурация ява: CLDC-1.0, CLDC-1.1). Иногда имеет смысл поэкспериментировать с этими параметрами, чтобы никак не желающее запускаться на Вашем телефоне приложение все-таки заработало, но это не всегда срабатывает.
MicroEdition-Profile: MIDP-2.0
MicroEdition-Configuration: CLDC-1.0
14
Размер готового jar-архива в байтах.
MIDlet-Jar-Size: 267162
15) Также имеется возможность адаптировать например игру с бОльшим чем у Вас разрешением экрана под свое разрешение (с небольшой потерей качества изображения, если изменение размера будет непропорциональным). Для этого в самом начале манифеста следует создать эти строчки:
Nokia-MIDlet-Original-Display-Size: 240,320
Nokia-MIDlet-Target-Display-Size: 176,208
где Nokia-MIDlet-Original-Display-Size - оригинальное разрешение игры, а Nokia-MIDlet-Target-Display-Size - то разрешение, которое Вам требуется.
16
Jad-файл приложения по сути также является описателем приложения, дублирует собой "MANIFEST.MF" программы и строится по тем же правилам что и он... Обычно разница только в том, что в jad указан адрес jar-приложения в интернете или в файловой системе телефона.
MIDlet-Jar-URL: https://wap.jimm.org/0.5.1/MIDP2/NO_MODULES/RU/Jimm.jar
При установке приложения через jad именно по ссылке в этом параметре будет загружаться само jar-приложение из интернета и устанавливаться в систему Вашего телефона... Если же Вы хотите, чтобы при установке через jad обе части приложения ставились из одной папки, указывайте в этом параметре простейший путь к jar-файлу в файловой системе, а именно только его название с расширением:
MIDlet-Jar-URL: Jimm.jar
Если Вы переименуете этот jar-файл, и его название не совпадет с указанным в параметре "MIDlet-Jar-URL", то установка пройдет неудачно... То же самое будет, если при установке через jad джар не окажется в одной папке с ним...
17) При подписи приложения сертификатом в jad создаются еще несколько параметров:
MIDlet-Certificate-1-1: в этом параметре содержится сам cer-сертификат, которым подписывалось приложение, закодированный алгоритмом base64.
MIDlet-Jar-RSA-SHA1: это сама подпись приложения, каким образом она строится я пока не знаю, но судя по всему она кодируется тремя алгоритмами - RSA, SHA1 и base64.
MIDlet-Permissions: ну а это список разрешений мидлету, дозволенных ему после подписи (доступ в интернет, доступ к чтению и изменению файловой системы и т.д.)
Автор данной статьи Warriorr!

Прикрепленный файл: 2666_manual-po-manif.txt (14.66 кб)

AndreyKrot
2009-06-10T23:09:53Z

Здесь находятся
всего 0. За сутки здесь было 0 человек

Комментарии 24

#24   Grakovne    

Ставлю автору +
ЗЫ страница индексируется гуглем (я оттуда пришел)


0 ответить

#24   Kolbas    

а вы не подскажите как туда прописать smsalarm чтоб при запуске от отправлял если что текс с моим номером телефона?? допустим потерял телефон а тот человек который запустит телефон я об этом знал??


0 ответить

#24   Vovan53    

Как установить два одинаковых приложения


0 ответить

#24   n81bla    

Jar=zip (без сжатия)


0 ответить

#24   Kompres    

Вопрос не в тему, где можно найти прогу для смарта os9.2 которая упаковывавет в jаr ?


0 ответить

#24   elfron    

A где можно найти строки с различными разрешениями для явы???т.е. Для выхода без спроса в инет и все такое.


0 ответить

#24   RusRu    

А что с подписью в итоге? Самому как добавить эти самые пермиссии и сертификаты?


0 ответить

#24   Leono    

Господа, а все же есть универсальный способ УМЕНЬШЕНИЯ разрешения явы? У меня на уменьшение манифест работать не хочет(


0 ответить

#24   elektro    

Поддерживаю lyucifeer, но ненадо обижаться на весь белый свет! Есть и хорошие люди! И как же нам новичкам потом быть? Без вас мы как без рук!


0 ответить

#24   lyucifeer    

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


0 ответить

Яндекс.Метрика