Java-Tutorial für AWS Cloud9 - AWS Cloud9

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Java-Tutorial für AWS Cloud9

Wichtig

Wenn Sie eine AWS Cloud9-Entwicklungsumgebung verwenden, die von einer EC2-Instance mit 2 GiB oder mehr Speicher unterstützt wird, empfehlen wir Ihnen, den erweiterten Java-Support zu aktivieren. Dies ermöglicht den Zugriff auf Produktivitätsfunktionen wie Code-Vervollständigung, Untersuchung auf Fehler, kontextspezifische Aktionen und Debugging-Optionen wie Haltepunkte und Stepping.

Weitere Informationen finden Sie unter Erweiterter Support für Java-Entwicklung.

Dieses Tutorial ermöglicht es Ihnen, Java-Code in einer AWS Cloud9 Entwicklungsumgebung auszuführen.

Wenn Sie dieses Tutorial befolgen und dieses Beispiel erstellen, kann dies zu Belastungen Ihres AWS Kontos führen. Dies umfasst mögliche Kosten für Services wie Amazon EC2 und Amazon S3. Weitere Informationen finden Sie unter Amazon EC2 – Preise und Amazon S3 – Preise.

Voraussetzungen

Bevor Sie dieses Beispiel verwenden, stellen Sie sicher, dass Ihre Einrichtung die folgenden Anforderungen erfüllt:

  • Sie müssen über eine vorhandene AWS Cloud9-EC2-Entwicklungsumgebung verfügen. Bei diesem Beispiel wird davon ausgegangen, dass Sie bereits eine EC2-Umgebung eingerichtet haben, die mit einer Amazon-EC2-Instance verbunden ist, die Amazon Linux oder Ubuntu Server ausführt. Wenn Sie ein andere Art von Umgebung oder ein anderes Betriebssystem verwenden, müssen Sie die Anweisungen dieses Beispiels zum Einrichten zugehöriger Tools möglicherweise anpassen. Weitere Informationen finden Sie unter Schaffung einer Umgebung in AWS Cloud9.

  • Die AWS Cloud9-IDE für die vorhandene Umgebung ist bereits geöffnet. Wenn Sie eine Umgebung öffnen, AWS Cloud9 öffnet die IDE für diese Umgebung in Ihrem Webbrowser. Weitere Informationen finden Sie unter Öffnen einer Umgebung in AWS Cloud9.

Schritt 1: Installieren der erforderlichen Tools

In diesem Schritt installieren Sie einen Satz von Java-Entwicklungstools in Ihrer AWS Cloud9 Entwicklungsumgebung. Wenn Sie bereits einen Satz von Java-Entwicklungstools wie Oracle JDK oder OpenJDK in der Umgebung installiert haben, können Sie zu Schritt 2: Code hinzufügen springen. Dieses Beispiel wurde mit OpenJDK 8 entwickelt. Sie können es mit folgendem Verfahren in der Umgebung installieren.

  1. Prüfen Sie, ob OpenJDK 8 bereits installiert ist. Führen Sie zu diesem Zweck in einer Terminalsitzung in der AWS Cloud9 IDE die Befehlszeilenversion des Java-Runners mit der Option -version aus. (Um eine neue Terminalsitzung zu starten, wählen Sie in der Menüleiste Window (Fenster), New Terminal (Neues Terminal) aus.

    java -version

    Führen Sie basierend auf der Ausgabe des vorhergehenden Befehls einen der folgenden Schritte aus:

    • Wenn die Ausgabe besagt, dass der Befehl java nicht gefunden wurde, fahren Sie zum Installieren von OpenJDK 8 mit Schritt 2 in diesem Verfahren fort.

    • Wenn die Ausgabe Werte enthält, die mit Java(TM), Java Runtime Environment, Java SE, J2SE oder Java2 beginnen, ist OpenJDK nicht installiert oder nicht als Standard-Toolset für die Java-Entwicklung festgelegt. Fahren Sie mit Schritt 2 in diesem Verfahren fort, um OpenJDK 8 zu installieren. Wechseln Sie dann zur Verwendung von OpenJDK 8.

    • Wenn die Ausgabe Werte enthält, die mit java version 1.8 und OpenJDK beginnen, fahren Sie mit Schritt 2: Code hinzufügen fort. OpenJDK 8 ist für dieses Beispiel richtig installiert.

    • Wenn die Ausgabe eine java version vor 1.8 und Werte enthält, die mit OpenJDK beginnen, fahren Sie mit Schritt 2 in diesem Verfahren fort, um die installierte Version von OpenJDK auf OpenJDK 8 upzugraden.

  2. Stellen Sie sicher, dass die neuesten Sicherheitsupdates und Fehlerbehebungen installiert wurden. Führen Sie dazu das yum-Tool (für Amazon Linux) oder das apt-Tool (für Ubuntu Server) mit dem Befehl update aus.

    Für Amazon Linux:

    sudo yum -y update

    Für Ubuntu Server:

    sudo apt update
  3. Installieren Sie OpenJDK 8. Führen Sie dazu das yum-Tool (für Amazon Linux) oder das apt-Tool (für Ubuntu Server) mit dem Befehl install unter Angabe des OpenJDK 8-Pakets aus.

    Für Amazon Linux:

    sudo yum -y install java-1.8.0-openjdk-devel

    Für Ubuntu Server:

    sudo apt install -y openjdk-8-jdk

    Weitere Informationen finden Sie unter How to download and install prebuilt OpenJDK packages auf der OpenJDK-Website.

  4. Wechseln Sie zum Standard-Toolset OpenJDK 8 für die Java-Entwicklung oder nehmen Sie ein entsprechendes Upgrade vor. Führen Sie zu diesem Zweck den Befehl update-alternatives mit der Option --config aus. Führen Sie diesen Befehl zweimal aus, um zu den Befehlszeilenversionen des Java-Runners und -Compilers zu wechseln oder ein entsprechendes Upgrade vorzunehmen.

    sudo update-alternatives --config java sudo update-alternatives --config javac

    Geben Sie an jeder Eingabeaufforderung die Auswahlziffer für OpenJDK 8 an (das Paket mit java-1.8).

  5. Vergewissern Sie sich, dass die Befehlszeilenversionen von Java-Runner und -Compiler OpenJDK 8 verwenden. Führen Sie zu diesem Zweck die Befehlszeilenversionen von Java-Runner und -Compiler mit der Option -version aus.

    java -version javac -version

    Wenn OpenJDK 8 installiert und richtig eingerichtet ist, enthält die Java-Runner-Versionsausgabe einen mit openjdk version 1.8 beginnenden Wert, während die Java-Compiler-Versionsausgabe mit dem Wert javac 1.8 beginnt.

Schritt 2: Code hinzufügen

Erstellen Sie in der AWS Cloud9 IDE eine Datei mit dem folgenden Code und speichern Sie die Datei unter dem Namen hello.java. (Um eine Datei zu erstellen, wählen Sie in der Menüleiste File (Datei), New File (Neue Datei) aus. Um die Datei zu speichern, wählen Sie Datei, Save (Speichern).)

public class hello { public static void main(String []args) { System.out.println("Hello, World!"); System.out.println("The sum of 2 and 3 is 5."); int sum = Integer.parseInt(args[0]) + Integer.parseInt(args[1]); System.out.format("The sum of %s and %s is %s.\n", args[0], args[1], Integer.toString(sum)); } }

Schritt 3: Erstellen und Ausführen des Codes

  1. Verwenden Sie die Befehlszeilenversion des Java-Compilers, um die Datei hello.java in eine hello.class-Datei zu kompilieren. Führen Sie zu diesem Zweck unter Verwendung des Terminals in der AWS Cloud9 IDE im Verzeichnis mit der Datei hello.java den Java-Compiler aus. Geben Sie dabei die Datei hello.java an.

    javac hello.java
  2. Verwenden Sie die Befehlszeilenversion des Java-Runners, um die Datei hello.class auszuführen. Führen Sie zu diesem Zweck im Verzeichnis mit der Datei hello.class den Java-Runner aus. Geben Sie dabei den Namen der Klasse hello, die in der Datei hello.java deklariert wurde, mit zwei ergänzenden Ganzzahlen (z. B. 5 und 9) an.

    java hello 5 9
  3. Vergleichen Sie die Ausgabe.

    Hello, World! The sum of 2 and 3 is 5. The sum of 5 and 9 is 14.

Schritt 4: Einrichten zur Verwendung des AWS SDK for Java

Sie können dieses Beispiel erweitern, um mit dem AWS SDK for Java einen Amazon S3-Bucket zu erstellen, die verfügbaren Buckets aufzulisten und dann den soeben erstellten Bucket zu löschen.

In diesem Schritt installieren Sie Apache Maven oder Gradle in der Umgebung. Maven und Gradle sind gebräuchliche Systeme zur Build-Automatisierung, die für Java-Projekte verwendet werden können. Nachdem Sie Maven oder Gradle installiert haben, können Sie die Software verwenden, um ein neues Java-Projekt zu generieren. In diesem neuen Projekt fügen Sie einen Verweis auf das AWS SDK for Java hinzu. Dieses AWS SDK for Java stellt eine komfortable Möglichkeit dar, im Java-Code mit AWS-Services wie Amazon S3 zu interagieren.

Einrichten mit Maven

  1. Installieren Sie Maven in Ihrer Umgebung. Um zu ermitteln, ob Maven bereits installiert ist, führen Sie Maven unter Verwendung des Terminals in der AWS Cloud9 IDE mit der Option -version aus.

    mvn -version

    Bei erfolgreicher Ausführung enthält die Ausgabe die Maven-Versionsnummer. Wenn Maven bereits installiert ist, fahren Sie mit Schritt 4 in diesem Verfahren fort, um mit Maven ein neues Java-Projekt in der Umgebung zu generieren.

  2. Installieren Sie Maven, indem Sie mit dem Terminal die folgenden Befehle ausführen.

    Für Amazon Linux rufen die folgenden Befehle Informationen über das Paket-Repository ab, in dem Maven gespeichert ist. Diese Informationen werden dann zum Installieren von Maven verwendet.

    sudo wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo sudo sed -i s/\$releasever/6/g /etc/yum.repos.d/epel-apache-maven.repo sudo yum install -y apache-maven

    Weitere Informationen zu den vorstehenden Befehlen finden Sie unter Extra Packages for Enterprise Linux (EPEL) im Wiki des Fedora-Projekts.

    Führen Sie stattdessen für Ubuntu Server den folgenden Befehl aus:

    sudo apt install -y maven
  3. Prüfen Sie die Installation, indem Sie Maven mit der Option -version ausführen.

    mvn -version
  4. Verwenden Sie Maven, um ein neues Java-Projekt zu generieren. Führen Sie zu diesem Zweck mit dem Terminal den folgenden Befehl in dem Verzeichnis aus, in dem Maven das Projekt generieren soll (z. B. im Stammverzeichnis Ihrer Umgebung).

    mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

    Der vorstehende Befehl erstellt die folgende Verzeichnisstruktur für das Projekt in der Umgebung.

    my-app |- src | `- main | `- java | `- com | `- mycompany | `- app | `-App.java |- test | `- java | `- com | `- mycompany | `- app | `- AppTest.java `- pom.xml

    Weitere Informationen zur vorstehenden Verzeichnisstruktur finden Sie unter Maven Quickstart Archetype und Introduction to the Standard Directory Layout auf der Apache Maven Project-Website.

  5. Ändern Sie die Project Object Model (POM)-Datei für das Projekt. (Eine POM-Datei definiert die Einstellungen eines Maven-Projekts.) Öffnen Sie zu diesem Zweck im Fenster Environment (Umgebung) die Datei my-app/pom.xml. Ersetzen Sie im Editor den aktuellen Inhalt der Datei durch den folgenden Code und speichern Sie dann die Datei pom.xml.

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.mycompany.app</groupId> <artifactId>my-app</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>3.6.0</version> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <mainClass>com.mycompany.app.App</mainClass> </manifest> </archive> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk</artifactId> <version>1.11.330</version> </dependency> </dependencies> </project>

    Die vorstehende POM-Datei enthält Projekteinstellungen mit Deklarationen wie den folgenden:

    • Die Einstellung artifactid von my-app legt den Namen des Projekt-Stammverzeichnisses und die Einstellung group-id in com.mycompany.app die com/mycompany/app-Unterverzeichnisstruktur sowie die package-Deklaration in den Dateien App.Java und AppTest.java fest.

    • Die artifactId-Einstellung von my-app legt mit der packaging-Einstellung von jar, der version-Einstellung von 1.0-SNAPSHOT und der descriptorRef-Einstellung von jar-with-dependencies den Namen my-app-1.0-SNAPSHOT-jar-with-dependencies.jar für die JAR-Ausgabedatei fest.

    • Der Abschnitt plugin deklariert das Erstellen eines JAR mit allen Abhängigkeiten.

    • Der Abschnitt dependency mit der groupId-Einstellung von com.amazon.aws und der artifactId-Einstellung des aws-java-sdk enthält die AWS SDK for Java-Bibliotheksdateien. Die zu verwendende AWS SDK for Java-Version wird mit der Einstellung version deklariert. Wenn Sie eine andere Version verwenden, ersetzen Sie diese Versionsnummer.

Fahren Sie mit Schritt 5: Richten Sie die AWS-Anmeldeinformationsverwaltung in Ihrer Umgebung ein fort.

Einrichten mit Gradle

  1. Installieren Sie Gradle in Ihrer Umgebung. Um zu ermitteln, ob Gradle bereits installiert ist, führen Sie Gradle unter Verwendung des Terminals in der AWS Cloud9 IDE mit der Option -version aus.

    gradle -version

    Bei erfolgreicher Ausführung enthält die Ausgabe die Gradle-Versionsnummer. Wenn Gradle bereits installiert ist, fahren Sie mit Schritt 4 in diesem Verfahren fort, um mit Gradle ein neues Java-Projekt in der Umgebung zu generieren.

  2. Installieren Sie Gradle, indem Sie mit dem Terminal die folgenden Befehle ausführen. Diese Befehle installieren und führen das SDKMAN! Tool aus. Dann verwenden Sie SDKMAN!, um die neueste Version von Gradle zu installieren.

    curl -s "https://get.sdkman.io" | bash source "$HOME/.sdkman/bin/sdkman-init.sh" sdk install gradle

    Weitere Informationen zu den obigen Befehlen finden Sie unter Installation auf der SDKMAN!-Website, und unter Install with a package manager auf der Gradle-Website.

  3. Prüfen Sie die Installation, indem Sie Gradle mit der Option -version ausführen.

    gradle -version
  4. Verwenden Sie Gradle, um ein neues Java-Projekt in der Umgebung zu generieren. Führen Sie zu diesem Zweck mit dem Terminal die folgenden Befehle aus, um ein Verzeichnis für das Projekt zu erstellen. Wechseln Sie dann in dieses Verzeichnis.

    mkdir my-app cd my-app
  5. Führen Sie den folgenden Befehl aus, um Gradle ein neues Java-Anwendungsprojekt im Verzeichnis my-app der Umgebung generieren zu lassen.

    gradle init --type java-application

    Der vorstehende Befehl erstellt die folgende Verzeichnisstruktur für das Projekt in der Umgebung.

    my-app |- .gradle | `- (various supporting project folders and files) |- gradle | `- (various supporting project folders and files) |- src | |- main | | `- java | | `- App.java | `- test | `- java | `- AppTest.java |- build.gradle |- gradlew |- gradlew.bat `- settings.gradle
  6. Ändern Sie die Datei AppTest.java für das Projekt. (Wenn Sie dies nicht tun, wird das Projekt möglicherweise nicht wie erwartet erstellt oder ausgeführt). Öffnen Sie zu diesem Zweck im Fenster Environment (Umgebung) die Datei my-app/src/test/java/AppTest.java. Ersetzen Sie im Editor den aktuellen Inhalt der Datei durch den folgenden Code und speichern Sie dann die Datei AppTest.java.

    import org.junit.Test; import static org.junit.Assert.*; public class AppTest { @Test public void testAppExists () { try { Class.forName("com.mycompany.app.App"); } catch (ClassNotFoundException e) { fail("Should have a class named App."); } } }
  7. Ändern Sie die Datei build.gradle für das Projekt. (Eine build.gradle-Datei definiert die Einstellungen eines Gradle-Projekts.) Öffnen Sie zu diesem Zweck im Fenster Environment (Umgebung) die Datei my-app/build.gradle. Ersetzen Sie im Editor den aktuellen Inhalt der Datei durch den folgenden Code und speichern Sie dann die Datei build.gradle.

    apply plugin: 'java' apply plugin: 'application' repositories { jcenter() mavenCentral() } buildscript { repositories { mavenCentral() } dependencies { classpath "io.spring.gradle:dependency-management-plugin:1.0.3.RELEASE" } } apply plugin: "io.spring.dependency-management" dependencyManagement { imports { mavenBom 'com.amazonaws:aws-java-sdk-bom:1.11.330' } } dependencies { compile 'com.amazonaws:aws-java-sdk-s3' testCompile group: 'junit', name: 'junit', version: '4.12' } run { if (project.hasProperty("appArgs")) { args Eval.me(appArgs) } } mainClassName = 'App'

    Die vorstehende build.gradle-Datei enthält Projekteinstellungen mit Deklarationen wie den folgenden:

    • Das Plug-in io.spring.dependency-management wird zum Importieren der AWS SDK for Java Maven Bill of Materials (BOM) verwendet, damit die AWS SDK for Java-Abhängigkeiten für das Projekt verwaltet werden können. classpath deklariert die zu verwendende Version. Wenn Sie eine andere Version verwenden, ersetzen Sie diese Versionsnummer.

    • com.amazonaws:aws-java-sdk-s3 enthält den Amazon S3-Teil der AWS SDK for Java-Bibliotheksdateien. mavenBom deklariert die Version, die verwendet werden soll. Wenn Sie eine andere Version verwenden möchten, ersetzen Sie diese Versionsnummer.

Schritt 5: Richten Sie die AWS-Anmeldeinformationsverwaltung in Ihrer Umgebung ein

Jedes Mal, wenn Sie das AWS SDK for Java verwenden, um einen AWS-Service aufzurufen, müssen Sie eine Reihe von AWS-Anmeldeinformationen mit dem Aufruf bereitstellen. Diese Anmeldeinformationen bestimmen, ob das AWS SDK for Java über die entsprechenden Berechtigungen für den Aufruf verfügt. Wenn die Anmeldeinformationen nicht die entsprechenden Berechtigungen haben, schlägt der Aufruf fehl.

In diesem Schritt speichern Sie Ihre Anmeldeinformationen innerhalb der Umgebung. Befolgen Sie stattdessen die Anweisungen unter Aufrufen von AWS-Services aus einer Umgebung in AWS Cloud9 und kehren Sie dann zu diesem Thema zurück.

Weitere Informationen finden Sie unter Einrichten der AWS-Anmeldeinformationen und ‑Region für die Entwicklung im AWS SDK for Java-Entwicklerhandbuch.

Schritt 6: Hinzufügen eines AWS SDK-Codes

In diesem Schritt fügen Sie Code für die Interaktion mit Amazon S3 hinzu, um einen Bucket zu erstellen, die verfügbaren Buckets aufzulisten und dann den soeben erstellten Bucket zu löschen.

Öffnen Sie im Fenster Environment (Umgebung) die Datei my-app/src/main/java/com/mycompany/app/App.java für Maven oder die Datei my-app/src/main/java/App.java für Gradle. Ersetzen Sie im Editor den aktuellen Inhalt der Datei durch den folgenden Code und speichern Sie dann die Datei App.java.

package com.mycompany.app; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.AmazonS3Exception; import com.amazonaws.services.s3.model.Bucket; import com.amazonaws.services.s3.model.CreateBucketRequest; import java.util.List; public class App { private static AmazonS3 s3; public static void main(String[] args) { if (args.length < 2) { System.out.format("Usage: <the bucket name> <the AWS Region to use>\n" + "Example: my-test-bucket us-east-2\n"); return; } String bucket_name = args[0]; String region = args[1]; s3 = AmazonS3ClientBuilder.standard() .withCredentials(new ProfileCredentialsProvider()) .withRegion(region) .build(); // List current buckets. ListMyBuckets(); // Create the bucket. if (s3.doesBucketExistV2(bucket_name)) { System.out.format("\nCannot create the bucket. \n" + "A bucket named '%s' already exists.", bucket_name); return; } else { try { System.out.format("\nCreating a new bucket named '%s'...\n\n", bucket_name); s3.createBucket(new CreateBucketRequest(bucket_name, region)); } catch (AmazonS3Exception e) { System.err.println(e.getErrorMessage()); } } // Confirm that the bucket was created. ListMyBuckets(); // Delete the bucket. try { System.out.format("\nDeleting the bucket named '%s'...\n\n", bucket_name); s3.deleteBucket(bucket_name); } catch (AmazonS3Exception e) { System.err.println(e.getErrorMessage()); } // Confirm that the bucket was deleted. ListMyBuckets(); } private static void ListMyBuckets() { List<Bucket> buckets = s3.listBuckets(); System.out.println("My buckets now are:"); for (Bucket b : buckets) { System.out.println(b.getName()); } } }

Schritt 7: Erstellen und Ausführen des AWS SDK-Codes

Führen Sie zum Ausführen des Codes aus dem vorherigen Schritt die folgenden Befehle mit dem Terminal aus. Diese Befehle verwenden Maven oder Gradle zum Erstellen einer ausführbaren JAR-Datei für das Projekt und den Java-Runner zum Ausführen der JAR-Datei. Die JAR-Datei wird mit dem Namen des in Amazon S3 zu erstellenden Buckets (z. B. my-test-bucket) und der ID der AWS-Region, in der der Bucket erstellt werden soll (z. B.us-east-2), als Eingabe ausgeführt.

Führen Sie für Maven die folgenden Befehle aus.

cd my-app mvn package java -cp target/my-app-1.0-SNAPSHOT-jar-with-dependencies.jar com.mycompany.app.App my-test-bucket us-east-2

Führen Sie für Gradle die folgenden Befehle aus.

gradle build gradle run -PappArgs="['my-test-bucket', 'us-east-2']"

Vergleichen Sie die Ergebnisse mit der folgenden Ausgabe.

My buckets now are: Creating a new bucket named 'my-test-bucket'... My buckets now are: my-test-bucket Deleting the bucket named 'my-test-bucket'... My buckets now are:

Schritt 8: Bereinigen

Um laufende Gebühren für Ihr AWS-Konto nach Verwendung dieses Beispiels zu vermeiden, sollten Sie die Umgebung löschen. Detaillierte Anweisungen finden Sie unter Löschen einer Umgebung in AWS Cloud9.