Archiwum Javy
Java Archive (potocznie znany jako plik JAR ze względu na rozszerzenie pliku ) służy do organizowania, rozpowszechnianie oraz dostarczenie bibliotek klas i programów wykonywalnych, które zostały utworzone w Java języka programowania . Technicznie jest to skompresowany plik w formacie ZIP . Archiwum zawiera skompilowane klasy Javy ( kod bajtowy ) i ewentualnie inne zasoby. Zwykle zawiera również jeden lub więcej plików z metadanymi . Mają one predefiniowane nazwy i struktury i znajdują się w katalogu META-INF. Typowy plik META-INF/MANIFEST.MFjest opisany bardziej szczegółowo w sekcji Manifest . Skróconą nazwę archiwum można rozumieć jako grę słów z angielskim słowem jar (niem. „vessel”).
posługiwać się
Pliki JAR zostały pierwotnie wprowadzone, aby klasy Java wymagane przez aplety Java nie musiały być ponownie ładowane pojedynczo z sieci. Przenoszenie wielu klas w jednym pliku jest wydajniejsze, a dodatkowo pliki można skompresować .
Plik „manifestu” może służyć do określenia sposobu uruchamiania aplikacji Java. Oznacza to, że aplikację można również uruchomić w graficznym interfejsie użytkownika, takim jak Windows , Mac OS X lub KDE bez pomocy wiersza poleceń (pod warunkiem, że .jarodpowiednie polecenie zostało przypisane do rozszerzenia pliku ). Dzięki java -jarniemu możesz uruchamiać pliki JAR z wiersza poleceń . Archiwa JAR przechowują nazwy plików wewnętrznie w kodowaniu UTF-8, dzięki czemu mogą również zawierać znaki umlautowe. Warunkiem wstępnym uruchamiania plików JAR lub programów Java jest zawsze zainstalowane środowisko Java Runtime Environment .
Pliki JAR można tworzyć za pomocą polecenia jar pakietu JDK (który używa składni tar ) lub, jeśli nazwy plików zawierają tylko znaki ASCII, za pomocą dowolnego programu ZIP. Dodatkowo Java Platform, Standard Edition oferuje w dwóch pakietach "java.util.jar" i "java.util.zip" klasy do odczytu lub tworzenia archiwów JAR lub ZIP.
Na przykład poniższe polecenie wyświetla zawartość pliku JAR o nazwie test.jar .
jar tvf test.jar
W tym przypadku litera t dla „Zawartość View” (od angielskiego t stanie treści ), v dla gadatliwe wyjście (angielskiego przeciwko erbose ) i f państw, które (w języku angielskim z pliku f Ile ) należy czytać którego nazwa następująco .
oczywisty
Każde archiwum Java może dostarczyć różne informacje o zawartości archiwum w katalogu „META-INF” za pomocą pliku o nazwie „MANIFEST.MF”. Do najważniejszych metainformacji należą:
- wersja dołączonych bibliotek klas, którą można określić w czasie wykonywania ,
- Informacje o dołączonych JavaBeans i
- nazwa głównej klasy zawartej aplikacji Java .
Ten plik manifestu jest prostym plikiem tekstowym zorientowanym liniowo, który zawiera kilka par nazw i wartości, z których każda definiuje tak zwany atrybut . Atrybut jest właściwością całej aplikacji, zawartej biblioteki klas lub nawet pojedynczego pakietu Javy ( pakietu ) lub pojedynczej klasy . Ponadto jest podzielony na kilka sekcji ( podzielone sekcje ).
Pierwsza sekcja nazywana jest sekcją główną i definiuje atrybuty, które mają zastosowanie do całego archiwum Java. Zawsze zaczyna się od definicji atrybutu „Wersja manifestu”, podczas gdy pozostałe atrybuty są opcjonalne. Poniższe sekcje odnoszą się do pojedynczego pakietu lub klasy i są opcjonalne, podobnie jak zawarte w nich atrybuty. Nieznane atrybuty są ignorowane i nie prowadzą do komunikatów o błędach. Jeśli atrybut jest zdefiniowany zarówno w sekcji głównej, jak iw sekcji indywidualnej, wartość zdefiniowana w sekcji indywidualnej nakłada się na wartość przypisaną wstępnie w sekcji głównej dla komponentu (pakietu lub klasy), do którego odnosi się sekcja.
przykład
Poniższy przykład przedstawia fragment manifestu pliku „rt.jar” zawartego w środowisku wykonawczym Java 1.4.
Manifest-Version: 1.0 Specification-Title: Java Platform API Specification Created-By: 1.4.2_05 (Sun Microsystems Inc.) Implementation-Title: Java Runtime Environment Specification-Vendor: Sun Microsystems, Inc. Specification-Version: 1.4 Implementation-Version: 1.4.2_05 Implementation-Vendor: Sun Microsystems, Inc. Name: javax/swing/JRadioButtonMenuItem.class Java-Bean: True Name: javax/swing/JList.class Java-Bean: True
Główna sekcja w tym przykładzie pokazuje, że ten manifest ma strukturę opisaną w wersji 1 specyfikacji pliku JAR Sun Microsystems (jedynej jak dotąd). Pozostałe atrybuty tej sekcji głównej zawierają informacje o specyfikacji spełnianej przez bibliotekę , producenta archiwum Java, nazwę implementacji, a także producenta i wersję użytej specyfikacji oraz implementację, którą ona zawiera. Poniższe dwie sekcje przykładu odnoszą się do klasy oznaczonej jako JavaBean .
Formaty pochodne
Kolejnymi specjalizacjami formatu JAR są np. pliki WAR ( Web Application Archive ), pliki EAR ( Enterprise Application Archive ) czy pliki OpenDocument .
Narzędzia
Java Development Kit zawiera kilka programów do manipulowania pliki JAR:
- słoik
- jar to program do tworzenia, modyfikowania i rozpakowywania plików JAR, których parametry są zbliżone do parametrów znanego uniksowego programu tar .
- jarsigner
- jarsigner to program, który podpisuje pliki JAR i weryfikuje ich podpis elektroniczny.
- opakowanie200
- pack200 konwertuje pliki JAR do formatu pliku, który może wydajniej przechowywać kod bajtowy. Został wprowadzony w Javie 5 i jest używany w szczególności z Java Web Start , ponieważ może być konieczne przesyłanie dużych ilości plików przez Internet . Rekonwersja odbywa się za pomocą programu unpack200 .
Narzędzia programistyczne dla plików JAR nie wchodzących w skład JDK:
- ProGuard
- ProGuard to program do kompresji, optymalizacji i zaciemniania plików JAR. Osiąga się to poprzez bardziej szczegółową analizę kodu bajtowego .
- pakowacz
- Jeśli nazwy plików w archiwum składają się ze znaków ASCII, pliki JAR można edytować za pomocą dowolnego narzędzia programowego, które może również edytować pliki ZIP . Niektóre przykłady podano na liście programów do kompresji danych .
linki internetowe
- Specyfikacja JAR dla J2SE 1.5.0 (angielski)
- Lekcja: Programy pakowania w plikach JAR (angielski)
- Mały samouczek o archiwach JAR