Detaillierte Erläuterung zur Verwendung von Docker zum Erstellen einer einfachen Java-Entwicklungs- und Kompilierungsumgebung

Detaillierte Erläuterung zur Verwendung von Docker zum Erstellen einer einfachen Java-Entwicklungs- und Kompilierungsumgebung

Es gibt viele Versionen der Java-Sprache. Zusätzlich zum häufig verwendeten Java 8 verwenden einige ältere Projekte möglicherweise Java 7 und einige neuere Projekte möglicherweise Java 10 oder höher. Wenn Sie Ihre lokale Java-Entwicklungsumgebung wechseln möchten, wird dies einige Zeit in Anspruch nehmen und Sie müssen dies in Zukunft bei jedem Wechsel zwischen verschiedenen Versionen tun.

Das Aufkommen von Docker erleichtert uns die Verwaltung verschiedener Versionen von Entwicklungs- und Kompilierungsumgebungen. Wenn Sie nicht wissen, was Docker ist, können Sie die Docker-Einführung lesen. Es gibt zwei Möglichkeiten, eine Java-Entwicklungsumgebung zu erstellen. Eine besteht darin, im Container zu kompilieren und auszuführen, und die andere darin, außerhalb des Containers zu kompilieren und auszuführen. Schauen wir uns an, wie das jeweils geht.

Vorbereitung: Stellen Sie zunächst sicher, dass Docker installiert ist. Wenn es praktisch ist, können Sie openjdk:8 Image im Voraus herunterladen, um allen Zeit zu sparen. Dieser Artikel wurde in der Umgebung von macOS 10.15.7 und Docker 19.03.8 überprüft.

Kompilieren und Ausführen im Container

Dieser Artikel verwendet als Beispiel ein einfaches Helloworld-Programm. Die Dateiverzeichnisstruktur und der Code des Projekts sind wie folgt.

$ ls -lh
insgesamt 24
-rw-r--r-- 1 Shiqiang-Mitarbeiter 60B 11 11 19:02 Dockerfile
-rw-r--r-- 1 Shiqiang-Mitarbeiter 123B 11 11 19:02 Hallo Welt.java

Der Inhalt des Codes.

öffentliche Klasse HalloWelt {
 öffentliche statische void main(String args[]) {
 System.out.println("Hallo Welt.\n");
 }
}

Nachdem Sie die oben genannten Vorbereitungen abgeschlossen haben, können Sie den Inhalt der Docker-Datei bearbeiten.

FROM openjdk:8 #Erstellen Sie ein Image basierend auf openjdk:8 COPY . /usr/src/myapp #Kopieren Sie den Code im Verzeichnis an den Speicherort /usr/src/myapp im Image WORKDIR /usr/src/myapp #Legen Sie /usr/src/myapp als Arbeitsverzeichnis fest RUN javac Helloworld.java #Führen Sie den Kompilierungsbefehl aus, um das Programm Helloworld.java zu kompilieren CMD ["java", "Helloworld"] #Führen Sie das kompilierte Helloworld aus

Erstellen Sie die Image-Datei.

$ docker build -t java_in_docker_env_8 . 
$ docker images # Verwenden Sie den Befehl docker images, um das erstellte java_in_docker_env_8-Image anzuzeigen

Führen Sie den Container aus.

$ docker run -it --rm java_in_docker_env_8
Hallo Welt.

$ ls -lh     
insgesamt 24
-rw-r--r-- 1 Shiqiang-Mitarbeiter 112B 11 12 10:53 Dockerfile
-rw-r--r-- 1 Shiqiang-Mitarbeiter 123B 11 12 10:49 Hallo Welt.java

Sie können die Ausgabe des Programms sehen und prüfen, ob im aktuellen Verzeichnis nicht kompilierte Ergebnisse vorhanden sind. Diese Methode erfordert jedoch bei jedem Start des Containers eine Kompilierung und es gibt keine Möglichkeit, die Kompilierungsergebnisse freizugeben. Im nächsten Abschnitt wird beschrieben, wie die Kompilierungsergebnisse außerhalb des Containers gespeichert werden.

Kompilieren und Ausführen außerhalb des Containers

Das Arbeitsverzeichnis und die Codevorbereitung sind dieselben wie im vorherigen Abschnitt, aber die Dockerfile-Datei unterscheidet sich geringfügig von der im vorherigen Abschnitt.

VON openjdk:8
KOPIEREN . /usr/src/myapp
ARBEITSVERZEICHNIS /usr/src/myapp

Erstellen Sie die Image-Datei.

$ docker build -t java_env_8
$ docker images # Verwenden Sie den Befehl docker images, um das erstellte java_env_8-Image anzuzeigen

Kompilieren Sie die Datei.

$ docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp java_env_8 javac Helloworld.java
$ ls -lh # Sie können das kompilierte Ergebnis insgesamt 32 sehen
-rw-r--r-- 1 Shiqiang-Mitarbeiter 112B 11 12 10:53 Dockerfile
-rw-r--r-- 1 Shiqiang-Mitarbeiter 427B 11 12 11:09 Hallo Welt.Klasse
-rw-r--r-- 1 Shiqiang-Mitarbeiter 123B 11 12 10:49 Hallo Welt.java

Führen Sie das Programm aus.

$ docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp java_env_8 java Hallo Welt 
Hallo Welt.

Abschließende Gedanken

In diesem Artikel wird nur eine einfache Java-Entwicklungsumgebung erstellt. Der Vorteil dieser Methode zum Kompilieren und Ausführen von Java-Programmen besteht darin, dass JDK nicht lokal installiert werden muss. Dies ist praktischer, wenn Sie Programme für mehrere JDK-Versionen kompilieren müssen. Komplexe Projekte werden jedoch häufig mit Maven oder Gradle erstellt. Können solche Projekte mit der in diesem Artikel beschriebenen Methode erstellt werden? Bitte freuen Sie sich auf den nächsten Artikel dieser Reihe. Sie können auch gerne dem offiziellen Konto folgen, um den neuesten Artikel-Push zu erhalten.

ReferenzenDocker - Erstellen Sie eine Java-Entwicklungsumgebung

Dies ist das Ende dieses Artikels über die Verwendung von Docker zum Erstellen einer einfachen Java-Entwicklungs- und Kompilierungsumgebung. Weitere Informationen zur Verwendung von Docker zum Erstellen einer Java-Entwicklungs- und Kompilierungsumgebung finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • So starten Sie ein Java-Programm im Docker
  • So entwickeln Sie Java 8 Spring Boot-Anwendungen in Docker
  • Schritte zum Erstellen einer Java-Umgebung mit Docker
  • So verwenden Sie Docker, ein Hilfstool für die Java-Datenentwicklung, und normale Programme

<<:  Detaillierte Erklärung des FreeList-Mechanismus von MySQL

>>:  Detaillierte Untersuchung des Problems der Array-Deduplizierung in JavaScript

Artikel    

Artikel empfehlen

Vue+js: Klicken Sie auf den Pfeil, um die Bilder zu wechseln

In diesem Artikelbeispiel wird der spezifische Co...

Detaillierte Verwendung von Echarts in vue2 vue3

Inhaltsverzeichnis 1. Installation 2. Verwenden S...

Implementierung der Clusterkonstruktion im Docker Redis5.0-Cluster

Systemumgebung: Ubuntu 16.04LTS In diesem Artikel...

MySQL-Datenbanktabellendesign mit Baumstruktur

Inhaltsverzeichnis Vorwort 1. Basisdaten 2. Verer...

So installieren Sie MySQL 5.7 manuell auf CentOS 7.4

MySQL-Datenbanken werden häufig verwendet, insbes...

Eine kurze Diskussion zum Thema Ziehen und Sortieren von Elementen in Tabellen

In letzter Zeit stoße ich bei der Verwendung von ...

Was ist ein MySQL-Tablespace?

Das Thema, das ich heute mit Ihnen teilen möchte,...

JavaScript-Canvas zum Laden von Bildern

In diesem Artikel wird der spezifische Code von J...

So löschen Sie Ordner, Dateien und Dekomprimierungsbefehle auf Linux-Servern

1. Ordner löschen Beispiel: rm -rf /usr/java Das ...

Beispielcode zur Implementierung der Alipay-Sandbox-Zahlung mit Vue+SpringBoot

Laden Sie zunächst eine Reihe von Dingen aus der ...

CSS implementiert fünf gängige 2D-Transformationen

2D-Transformationen in CSS ermöglichen es uns, ei...