Als Vorkenntnisse zum Verständnis der Optionen von JAR-Dateien Zunächst werde ich die Spezifikationen der JAR-Datei erläutern.
Die JAR-Datei kann die folgenden Elemente enthalten: Angenommen, Sie haben für jedes Element eine JAR-Datei mit dem Namen "sample-root.jar".
Eine Übersicht von jedem ist unten angegeben.
INDEX.LIST Eine Datei, die mit der Option -i des Befehls jar generiert wurde. In der JAR-Datei, die diese Datei enthält, und in den anderen JAR-Dateien, von denen sie abhängt Durch Indizieren der Standortinformationen des gespeicherten Pakets Es wird verwendet, um die Verarbeitung des Klassenladeprogramms zu beschleunigen.
INDEX.LIST Beispiel
JarIndex-Version: 1.0
sample-root.jar
com
com/example
com/example/app
Wenn abhängige JAR-Dateien vorhanden sind, folgen diese Informationen ebenfalls...
MANIFEST.MF
Die Manifestdatei ist eine Datei, die verschiedene Metainformationen der JAR-Datei enthält. Es besteht aus einem Hauptabschnitt und einzelnen Abschnitten und kann mit der Paarmethode "Attribut: Wert" festgelegt werden. Wenn dasselbe Attribut mehrmals festgelegt wird, hat das Attribut im einzelnen Abschnitt Vorrang.
#==========Hauptteil==========
#Versionsinformation(Verpflichtend)
Manifest-Version: 1.0
#Hauptattribut
#Attribut:Wert
#Stellen Sie sicher, dass zwischen dem Hauptabschnitt und den einzelnen Abschnitten eine Linie besteht
# ===========Einzelteil===========
#Attribut nach Eintrag
#Attribut:Wert
Nachfolgend sind die Hauptattribute aufgeführt, die in der Manifestdatei festgelegt werden können.
[Hauptattribut]
Außerdem,
--Attribute, die für eigenständige Anwendungen definiert sind (z. B. der Header der Hauptklasse)
Es gibt verschiedene Attribute wie.
[Attribute nach Eintrag]
--Inhaltstyp:
sample-root.DSA und sample-root.SF sind Signaturdateien. In diesem Artikel werden Java-Sicherheitstools nicht erwähnt, daher werde ich sie weglassen.
Es gibt eine Funktion, die als Dienstanbieter bezeichnet wird, um die Funktion der externen JAR-Datei zu verwenden. Ein Verzeichnis, in dem konkrete Klassen gespeichert werden, die mit externen JAR-Dateien verbunden sind. Ich werde die Erklärung dieses Mal weglassen. Wenn Sie mehr wissen möchten, lesen Sie bitte den folgenden Artikel. Referenzartikel: Funktion des JAR-Dateidienstanbieters
--c: Neu erstellt --u: Update --x: Dateien und Verzeichnisse extrahieren --t: Liste der Archivinhalte --f: Geben Sie die JAR-Datei an
--M: Erstellen Sie keine Manifestdatei
--v: Zeigt detaillierte Informationen an, z. B. die vom Befehl jar ausgeführte Operation und die Liste der gespeicherten Dateien.
--0: JAR-Datei ohne ZIP-Komprimierung generieren
--i
#Erstellen Sie eine JAR-Datei mit dem Namen jarfile mit den Ressourcen unter den Eingabedateien
jar c[v0M]f jarfile [-C dir] inputfiles [-Joption]
#Erstellen Sie eine Jarfile mit den Ressourcen unter den Eingabedateien
#Mehrwert für das Manifest(Nicht löschen)
jar c[v0]mf manifest jarfile [-C dir] inputfiles [-Joption]
[Informationen zur Beschreibungsreihenfolge der Optionen m und f] Die Reihenfolge der Beschreibung der Optionen m und f wird nicht festgelegt. Für cmf manifest jarfile, für cfm, jarfile manifest und so weiter. Die Reihenfolge der nachfolgenden Argumente muss übereinstimmen.
#Geben Sie in den Ressourcen unter den Eingabedateien nur den geänderten Teil in der Jarfile und dem Update an
jar u[v0M]f jarfile [-C dir] inputfiles [-Joption]
#Nur die Teile, die sich in den Ressourcen unter den Eingabedateien geändert haben, werden in der Jarfile angezeigt.
#Aktualisieren Sie das Manifest(Werte hinzufügen oder entfernen)
jar u[v0]mf manifest jarfile [-C dir] inputfiles [-Joption]
#Extrahieren Sie alle Verzeichnisse und Dateien in der JAR-Datei(Auftauen)Machen
#Wenn Eingabedateien angegeben sind, werden das angegebene Ziel und darunter extrahiert.
jar x[v]f jarfile [inputfiles] [-Joption]
#Listen Sie alle Verzeichnisse und Dateien in der JAR-Datei auf
#Wenn Eingabedateien angegeben sind, wird die Liste unter dem angegebenen Ziel angezeigt.
jar t[v]f jarfile [inputfiles] [-Joption]
#INDEX im angegebenen Jarfile.Erstelle eine Liste
jar i jarfile [-Joption]
Unten ist die erste Ordnerstruktur.
Geben Sie die JAR-Datei (f) an, geben Sie detaillierte Informationen aus (v). Erstellen Sie eine neue JAR-Datei mit dem Namen java-sample.jar (c).
#Das aktuelle Verzeichnis ist/java-Stichprobe
$ jar cvf java-sample.jar .
Manifest hinzugefügt
.DS_Speicher wird hinzugefügt(Eingeben=6148)(aus=411)(93%Schrumpfte)
lib/Wird hinzugefügt(Eingeben=0)(aus=0)(0%Gelagert)
lib/commons-lang3-3.10.Glas hinzufügen(Eingeben=523372)(aus=481881)(7%Schrumpfte)
src/Wird hinzugefügt(Eingeben=0)(aus=0)(0%Gelagert)
src/com/Wird hinzugefügt(Eingeben=0)(aus=0)(0%Gelagert)
src/com/example/Wird hinzugefügt(Eingeben=0)(aus=0)(0%Gelagert)
src/com/example/app/Wird hinzugefügt(Eingeben=0)(aus=0)(0%Gelagert)
src/com/example/app/UseCommons.Java hinzufügen(Eingeben=647)(aus=286)(55%Schrumpfte)
src/com/example/app/StrFactory.Klasse wird hinzugefügt(Eingeben=308)(aus=234)(24%Schrumpfte)
src/com/example/app/UseCommons$CommonsHelper.Klasse wird hinzugefügt(Eingeben=592)(aus=398)(32%Schrumpfte)
src/com/example/app/StrFactory.Java hinzufügen(Eingeben=115)(aus=101)(12%Schrumpfte)
src/com/example/app/UseCommons.Klasse wird hinzugefügt(Eingeben=732)(aus=441)(39%Schrumpfte)
Eine java-sample.jar wird im aktuellen Verzeichnis erstellt.
#Das aktuelle Verzeichnis ist/java-Stichprobe
$ jar tf java-sample.jar
META-INF/
META-INF/MANIFEST.MF
.DS_Store
lib/
lib/commons-lang3-3.10.jar
src/
src/com/
src/com/example/
src/com/example/app/
src/com/example/app/UseCommons.java
src/com/example/app/StrFactory.class
src/com/example/app/UseCommons$CommonsHelper.class
src/com/example/app/StrFactory.java
src/com/example/app/UseCommons.class
Wenn Sie es direkt unter Java-Sample ausführen, werden vorhandene Dateien und dekomprimierte Dateien gemischt Erstellen Sie einen Ordner namens unzip und entpacken Sie ihn dort.
#Das aktuelle Verzeichnis ist/entpacken
$ jar xf ../java-sample/java-sample.jar
Das Dekomprimierungsergebnis der JAR-Datei wird direkt unter Entpacken erweitert.
Recommended Posts