[JAVA] Einführung in JAR-Dateien

Im Haupttext möchte ich von der Erstellung der JAR-Datei bis zu ihrer Verwendung für Anfänger (für mich selbst) zusammenfassen.

Eine JAR-Datei ist eine Sammlung mehrerer Java-Klassen und -Pakete in einer einzigen Datei. Eine gute Möglichkeit, dies zu erstellen, ist die Verwendung des Befehls jar. Der Befehl jar kann verwendet werden, wenn das JDK auf dem PC installiert ist.

1. Diese Entwicklungsumgebung

Erstellen Sie eine JAR-Datei unter den folgenden Bedingungen.

・ Maschine: MacBook Air 2017
・ Betriebssystem: macOS High Sierra(10.13.3)
· Java-Version: 9.0.4

JAR-Dateien sind ursprünglich nützlich, um mehrere Java-Klassen und -Pakete in einer Datei zu kombinieren. Der Einfachheit halber werden wir diesmal jedoch nur ein Paket und eine Klasse behandeln.

2. Erstellen von Java-Klassen, die zu einer JAR-Datei kombiniert werden sollen

Erstellen Sie zunächst die in diesem Beispiel verwendete Test.java in ~ / Documents / test /. Ich habe test / selbst erstellt. Das Folgende ist der Inhalt der erstellten Klasse.

Test.java


package test;

public class Test {
 public static void main(String args[]){
    System.out.println("Hello World!");
  }
}

Die JAR-Datei verwendet die .class-Datei anstelle der .java-Datei, daher müssen Sie sie mit dem Befehl javac kompilieren.

test username$ javac Test.java

Da dieses Mal das Paket angegeben ist, sollte der folgende Befehl im Verzeichnis "Dokumente /" anstelle des Verzeichnisses "test /" verwendet werden, um dieses Programm mit dem Befehl "Java" auszuführen und das Ergebnis zu überprüfen. Du musst tun.

Documents username$ java test.Test
Hello World!

Sie haben jetzt eine Test Klasse in ~ / Documents / test / erstellt.

3. Erstellen Sie eine JAR-Datei

Erstellen Sie dann eine JAR-Datei mit dem Befehl jar. Der Befehl jar wird in dieser Site einschließlich der Optionen ausführlich beschrieben. ..

Jetzt erstellen wir eine JAR-Datei mit dem folgenden Befehl jar.

Documnets username$ jar cvf Test.jar test/

Als Aufschlüsselung der Optionen

・ C: Erstellen Sie eine neue JAR-Datei ・ V: Geben Sie detaillierte Informationen auf dem Bildschirm aus ・ F: Geben Sie den Namen der JAR-Datei an

ist.

Mit anderen Worten

Documnets username$ jar cvf [Der Name der neu erstellten JAR-Datei] [Java, das Sie in Ihre JAR-Datei aufnehmen möchten
Verzeichnis mit Programmen]

Es ist genauso wie das. Wenn Sie den folgenden Befehl ausführen, nachdem Sie diesen Befehl ausgeführt haben, sollte ein Ergebnis wie dieses angezeigt werden.

Documents username$ jar tvf Test.jar
     0 Wed Jan 31 16:20:16 JST 2018 META-INF/
    88 Wed Jan 31 16:22:12 JST 2018 META-INF/MANIFEST.MF
     0 Wed Jan 31 15:06:50 JST 2018 test/
   419 Wed Jan 31 16:06:06 JST 2018 test/Test.class
   122 Wed Jan 31 15:06:50 JST 2018 test/Test.java

Die JAR-Datei wird jetzt erstellt.

4. Fügen Sie der JAR-Datei das Hauptmanifestattribut hinzu

Lassen Sie uns die JAR-Datei sofort mit dem Befehl java -jar ausführen. Dann

Documents username$ java -jar Test.jar
Test.jar hat kein Hauptmanifestattribut

Sie sollten ein solches Ergebnis erhalten. Dies liegt daran, dass die Main-Methode, die bei Ausführung mit java -jar aufgerufen wird, nicht festlegt, welche Klasse die Main-Methode ist.

Sie müssen das Hauptmanifestattribut zu MANIFEST.MF hinzufügen, um dies zu verhindern. Erstellen Sie als zusätzliche Methode eine Manifestdatei mit dem Namen ".mani" in dem Verzeichnis, in dem sich die JAR-Datei befindet, und schreiben Sie dann den folgenden Inhalt in diese Datei.

Main-Class: test.Test

Beschreiben Sie als Aufschlüsselung den Klassennamen, der die Main-Methode enthält, die Sie nach dem Paket aufrufen möchten, zu dem Test.class gehört. Dieses Mal habe ich package test; in Test.java geschrieben, also ist test das Paket, zu dem Test.class gehört.

Führen Sie den folgenden Befehl aus, nachdem Sie die Manifestdatei auf diese Weise erstellt haben

Documents username$ jar uvfm Test.jar Test.mani

Das Hauptmanifestattribut wird jetzt in MANIFEST.MF hinzugefügt. Wenn Sie den Inhalt von MANIFEST.MF überprüfen, ist dies wie folgt.

Manifest-Version: 1.0
Created-By: 9.0.4 (Oracle Corporation)
Main-Class: test.Test 

5. Führen Sie die JAR-Datei aus

Zu diesem Zeitpunkt sollten Sie in der Lage sein, die JAR-Datei mit dem Befehl java -jar auszuführen.

Documents username$ java -jar Test.jar
Hello World!

Die Ausführung ist möglicherweise nicht möglich, ohne den Klassenpfad anzugeben. Fügen Sie in einem solchen Fall die folgende Anweisung zu ~ / .profile hinzu (erstellen Sie sie, wenn sie nicht vorhanden ist).

export CLASS_PATH=/Users/username/Documents/Test.jar

Das Obige sind die Grundlagen von JAR-Dateien. Ich bin noch ein Anfänger, also zögern Sie bitte nicht, auf den Text in den Kommentaren hinzuweisen!

Recommended Posts

Einführung in JAR-Dateien
Einführung in den Befehl jar
Einführung in Ruby 2
Einführung in web3j
Einführung in Micronaut 1 ~ Einführung ~
[Java] Einführung in Java
Einführung in die Migration
Einführung in Java
Einführung in Doma
Einführung in Ratpack (8) -Session
Einführung in die Bitarithmetik
Einführung in Ratpack (6) --Promise
Einführung in Ratpack (9) - Thymeleaf
Einführung in PlayFramework 2.7 ① Übersicht
JAR-Datei Übersicht
Einführung in das Android-Layout
Einführung in Entwurfsmuster (Einführung)
Einführung in die praktische Programmierung
Einführung in den Befehl javadoc
Einführung in Ratpack (2) -Architektur
Einführung in den Lambda-Stil
Einführung in den Java-Befehl
Einführung in die Keycloak-Entwicklung
Einführung in den Befehl javac
Eine Geschichte über das Bemühen, JAR-Dateien zu dekompilieren
Einführung in Entwurfsmuster (Builder)
Einführung in die Android App-Entwicklung
Einführung in Ratpack (5) --Json & Registry
Einführung in Metabase ~ Umgebungskonstruktion ~
Einführung in Ratpack (7) - Guice & Spring
(Punktinstallation) Einführung in Java8_Impression
Einführung in Entwurfsmuster (Composite)
Einführung in Micronaut 2 ~ Unit Test ~
Einführung in JUnit (Studiennotiz)
Einführung in Spring Boot ~ ~ DI ~
Einführung in Designmuster (Fliegengewicht)
[Java] Einführung in den Lambda-Ausdruck
Einführung in Spring Boot ② ~ AOP ~
Einführung in Apache Beam (2) ~ ParDo ~
Einführung in die EHRbase 2-REST-API
Einführung in Entwurfsmuster Prototyp
[Java] Einführung in die Stream-API
Einführung in Entwurfsmuster (Iterator)
Einführung in Spring Boot Teil 1
Einführung in Ratpack (1) - Was ist Ratpack?
Zurücksetzen der Migrationsdatei
Einführung in Entwurfsmuster (Strategie)
[Einführung in Janken (ähnliche) Spiele] Java
Verwendung von Maven zum Platzieren von Ressourcendateien außerhalb von JAR
Einführung in Batch-Dateien (für Anweisungen, Arrays, verzögerte Umgebungsvariablen)
Einführung in Linux Container / Docker (Teil 1)