Кіріспе

Java архив файл пішімі

JAR ("Java архив") файлы – Java кластарының көптеген файлдарын, сондай-ақ олармен байланысты метадеректер мен ресурстарды (мәтін, суреттер және т.б.) біріктіріп, таратуға арналған пакет файл пішімі. JAR файлдары – Java-ға тән манифест файлын қамтитын архив файлдары. Олар ZIP форматы негізінде құрылған және әдетте .jar кеңейтімді файл ретінде сақталады.

Дизайн

JAR файлы Java орындалу ортасына қолданбаның барлық бөліктерін, оның ішінде сыныптарды және олармен байланысты ресурстарды бір сұрау арқылы тиімді орналастыруға мүмкіндік береді. JAR файлының элементтері қысылуы мүмкін, бұл жүктеу уақытын қысқартады. JAR файлында META-INF/MANIFEST орналасқан жерде манифест файлы болуы мүмкін. MF. Манифест файлындағы жазбалар JAR файлын қалай пайдалану керектігін көрсетеді. Мысалы, Classpath жазуы JAR файлымен бірге жүктелуі тиіс басқа JAR файлдарын көрсету үшін қолданылуы мүмкін.

Экстракциялау

Файлдың ішкі мазмұны ZIP форматын қолдайтын кез келген архивті ашу бағдарламасымен немесе Java Development Kit құрамына енген jar командалық құралын қолдану арқылы алынып шығарылуы мүмкін.

Қауіпсіздік

Жасаушылар JAR файлдарына цифрлық қол қоя алады. Мұндай жағдайда қолтаңба туралы ақпарат кіріктірілген манифест файлының бір бөлігі болады. JAR файлының өзі қолтаңбаланбайды, бірақ оның ішіндегі әрбір файл өз тексеру сомасымен бірге тізімделеді; осы тексеру сомалары қолтаңбаланады. Бірнеше тұлға JAR файлына қол қоюы мүмкін, әр қол қою JAR файлын өзгертеді, бірақ қол қойылған файлдардың өзі жарамды болып қалады. Java орындалыс ортасы қол қойылған JAR файлдарын жүктегенде, қолтаңбаларды тексеріп, қолтаңбаға сәйкес келмейтін сыныптарды жүктеуден бас тарта алады. Сонымен қатар, «мөрленген» пакеттерді де қолдайды, онда Classloader бір пакетке Java сыныптарының жүктелуіне тек олардың барлығы бірдей тұлғалармен қол қойылған жағдайда ғана рұқсат береді. Бұл қасақана жасалған кодтың қолданыстағы пакетке енгізіліп, пакеттік ауқымдағы сыныптар мен деректерге қол жеткізуіне жол бермейді. JAR файлдарының мазмұны кері инженерияны қиындату үшін бүркемеленуі мүмкін.

Орындалатын JAR файлдары

Орындалатын Java бағдарламасы, бағдарлама пайдаланатын кез келген кітапханалармен бірге JAR файлына жинақталуы мүмкін. Орындалатын JAR файлдарында кіру нүктесі класын "Main Class: myPrograms.MyClass" деп көрсететін манифест болады және нақты Class Path (cp аргументі назарға алынбайды). Кейбір операциялық жүйелер оларды екі рет шерту арқылы тікелей іске қоса алады. Көбінесе командалық жолдан "java -jar foo.jar" арқылы шақырылады. Көптеген платформаларда жергілікті іске қосу құралдарын жасауға болады. Мысалы, Windows EXE файлдарын пайдалануды ұнататын Microsoft Windows қолданушылары JSmooth, Launch4J, WinRun4J немесе Nullsoft Scriptable Install System сияқты құралдарды жеке JAR файлдарын орындалатын файлдарға айналдыру үшін пайдалана алады.

Манифест

Манифест файлы – JAR ішіндегі метадеректер файлы. Ол кеңейтімдер мен пакеттерге қатысты деректерді анықтайды. Ол бөлімдерге бөлінген атау-мәнді жұптардан тұрады. Егер JAR файлы орындалатын файл ретінде қолданылуы тиіс болса, манифест файлы қолданбаның негізгі класын көрсетеді. Манифест файлы MANIFEST.MF деп аталады. Манифест каталогы сығылған архивтің алғашқы жазбасы болуы керек.

Сипаттамалар

Манифест ресми орналасқан жері META-INF/MANIFEST.MF болып табылады. Мұрағатта тек бір манифест файлы болуы мүмкін және ол міндетті түрде сол жерде орналасуы керек. Java Development Kit 1.0 нұсқасымен жасалған JAR файлының манифест файлының мазмұны төмендегідей: Манифест нұсқасы: 1.0.

Атау мен оның мәні арасында қос нүктемен бөлінеді. Стандартты манифест манифест спецификациясының 1.0 нұсқасына сәйкес екенін көрсетеді. Манифест мұрағатқа жинақталған басқа файлдар туралы ақпаратты қамтуы мүмкін. Манифест мазмұны JAR файлының мақсатына байланысты. Стандартты манифест файлы басқа файлдар туралы қандай ақпаратты жазу керектігі туралы ешқандай болжам жасамайды, сондықтан оның бір жолы тек өзі туралы деректерді қамтиды. Ол UTF-8 кодировкасында болуы керек.

Арнайы мақсаттағы манифест тізбегі

Тек архивтеу үшін ғана жасалған JAR файлдары MANIFEST.MF файлынан пайдаланбайды. JAR файлдарын қолданудың көп бөлігі қарапайым архивтеу және сығудан асып түседі және манифест файлында арнайы ақпаратты талап етеді.

Ерекшеліктері

Манифест әзірлеушілерге өздерінің jar файлдары үшін бірнеше пайдалы мүмкіндіктерді анықтауға мүмкіндік береді. Қасиеттер кілт-мәнді жұптар түрінде беріледі.

Қолданбалар

Егер қосымша JAR файлында болса, Java виртуалды машинасы қосымшаның кіру нүктесін білуі керек. Кіру нүктесі – `public static void main(String[] args)` әдісі бар кез келген сынып. Бұл ақпарат манифесттің "Main Class" (Негізгі сынып) тақырыбында көрсетіледі, оның жалпы форматы:

`Main Class: com.example.MyClassName`

Бұл мысалда, қосымша іске қосылғанда `com.example.MyClassName.main` орындалады.