的 Java 教學課程 AWS Cloud9 - AWS Cloud9

AWS Cloud9 不再提供給新客戶。的現有客戶 AWS Cloud9 可以繼續正常使用服務。進一步了解

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

的 Java 教學課程 AWS Cloud9

重要

如果您使用的 AWS Cloud9 開發環境由具有 2 GiB 或更多記憶體的EC2執行個體支援,我們建議您啟用增強型 Java 支援。這可以提供各種生產力功能的存取權,例如程式碼完成、錯誤檢查、內容特定動作以及除錯選項 (如中斷點和逐步執行)。

如需詳細資訊,請參閱增強對 Java 開發的支援

本教學課程可讓您在 AWS Cloud9 開發環境中執行一些 Java 程式碼。

遵循本教學課程並建立此範例可能會導致您的帳戶 AWS 產生費用。這包括 Amazon EC2和 Amazon S3 等服務的可能費用。如需詳細資訊,請參閱 Amazon EC2 PricingAmazon S3 Pricing

必要條件

在您使用此範例前,請務必確認您的設定符合下列要求:

  • 您必須具有現有的 AWS Cloud9 EC2開發環境。此範例假設您已擁有連線至執行 Amazon Linux 或 的 Amazon EC2執行個體EC2的環境 Ubuntu 伺服器。如果您有不同類型的環境或作業系統,您可能需要依照此範例的說明來設定相關工具。如需詳細資訊,請參閱在 中建立環境 AWS Cloud9

  • 您已經開啟現有環境的 AWS Cloud9 IDE。當您開啟環境時,請在 Web 瀏覽器中 AWS Cloud9 開啟該環境IDE的 。如需詳細資訊,請參閱在 AWS Cloud9 中開啟環境

步驟 1:安裝必要工具

在此步驟中,您可以在開發環境中安裝一組 Java AWS Cloud9 開發工具。如果您已在環境中安裝一組 Java 開發工具,例如 Oracle JDK或 OpenJDK,您可以跳至 步驟 2:新增程式碼。此範例使用 OpenJDK 8 開發,您可以完成下列程序,在環境中安裝 。

  1. 確認是否已安裝 OpenJDK 8。若要這麼做,請在 的終端機工作階段中 AWS Cloud9 IDE,使用 -version選項執行 Java Runner 的命令列版本。(若要啟動新終端機工作階段,請在選單列上,選擇 Window (視窗)、New Terminal (新增終端機)。

    java -version

    依據上述命令的輸出,執行以下操作之一:

    • 如果輸出指出找不到java命令,請繼續執行此程序中的步驟 2,以安裝 OpenJDK 8。

    • 如果輸出包含以 Java(TM)Java Runtime EnvironmentJava SEJ2SE或 開頭的值Java2,JDK則 Open 不會安裝,也不會設定為預設 Java 開發工具集。繼續此程序中的步驟 2 以安裝 OpenJDK 8,然後使用 OpenJDK 8 切換到 。

    • 如果輸出包含以 java version 1.8OpenJDK 開頭的值,請直接跳到 步驟 2:新增程式碼。此範例已正確安裝 OpenJDK 8。

    • 如果輸出包含java version小於 1.8且值以 開頭OpenJDK,請繼續此程序中的步驟 2,將已安裝的 OpenJDK 版本升級至 OpenJDK 8。

  2. 確定已安裝最新的安全性更新和錯誤修正。若要這樣做,請以 update 命令執行 yum 工具 (適用於 Amazon Linux) 或 apt 工具 (適用於 Ubuntu Server)。

    針對 Amazon Linux:

    sudo yum -y update

    針對 Ubuntu Server:

    sudo apt update
  3. 安裝 OpenJDK 8。若要執行此操作,請使用 install命令執行 yum 工具 (適用於 Amazon Linux) 或 apt 工具 (適用於 Ubuntu Server),指定 OpenJDK 8 套件。

    針對 Amazon Linux:

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

    針對 Ubuntu Server:

    sudo apt install -y openjdk-8-jdk

    如需詳細資訊,請參閱如何在 OpenJDK 網站上下載和安裝預先建置的 Open 套件。JDK

  4. 將預設 Java 開發工具集切換或升級至 OpenJDK 8。若要這樣做,請執行 update-alternatives 命令與 --config 選項。執行此命令兩次,以切換或升級 Java runner 和編譯器的命令列版本。

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

    在每個提示中,輸入 OpenJDK 8 的選擇編號 (包含 的選項編號java-1.8)。

  5. 確認 Java 執行器和編譯器的命令列版本正在使用 OpenJDK 8。若要執行此操作,執行 Java runner 和編譯器的命令列版本並使用 -version 選項。

    java -version javac -version

    如果安裝 OpenJDK 8 並正確設定,Java Runner 版本輸出會包含以 開頭的值openjdk version 1.8,而 Java 編譯器版本輸出則以 開頭的值 javac 1.8

步驟 2:新增程式碼

在 中 AWS Cloud9 IDE,使用下列程式碼建立檔案,並使用名稱 儲存檔案hello.java。(若要建立檔案,請在選單列上選擇 File (檔案)、New File (新增檔案)。若要儲存檔案,請選擇 File (檔案)、Save (儲存)。)

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)); } }

步驟 3:建置並執行程式碼

  1. 使用 Java 編譯器的命令列版本,將 hello.java 檔案編譯為 hello.class 檔案。若要這麼做,請使用 中的終端機 AWS Cloud9 IDE,從與 hello.java 檔案相同的目錄執行 Java 編譯器,指定 hello.java 檔案。

    javac hello.java
  2. 使用 Java runner 的命令列版本執行 hello.class 檔案。若要這樣做,從與 hello.class 檔案相同的目錄執行 Java runner,並指定在 hello 檔案中宣告的 hello.java 類別的名稱,新增兩個整數 (例如,59)。

    java hello 5 9
  3. 比較您的輸出。

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

步驟 4:設定 以使用 AWS SDK for Java

您可以增強此範例,以使用 AWS SDK for Java 建立 Amazon S3 儲存貯體、列出可用的儲存貯體,然後刪除剛建立的儲存貯體。

在此步驟中,您會在環境中安裝 Apache MavenGradle。Maven 和 Gradle 是通用建置自動化系統,可搭配使用 Java 專案。在安裝 Maven 或 Gradle 之後,您可以使用它來產生新的 Java 專案。在這個新專案中,您會新增 AWS SDK for Java的參考。這 AWS SDK for Java 提供了一種方便的方式,讓您從 Java 程式碼與 Amazon S3 等 AWS 服務互動。

使用 Maven 設定

  1. 在您的環境中安裝 Maven。若要查看是否已安裝 Maven,請使用 中的終端機 AWS Cloud9 IDE,並使用 -version選項執行 Maven。

    mvn -version

    如果成功,輸出會包含 Maven 版本編號。如果已安裝 Maven,請直接跳到此程序中的步驟 4,使用 Maven 在環境中產生新的 Java 專案。

  2. 使用終端機執行以下命令以安裝 Maven。

    如為 Amazon Linux,您可以使用下列命令獲得存放 Maven 的套件儲存庫相關資訊,然後使用此資訊安裝 Maven。

    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

    如需上述命令的詳細資訊,請參閱 Fedora Project Wiki 網站上的適用於 Enterprise Linux (EPEL) 的額外套件

    對於 Ubuntu Server,改為執行下列命令。

    sudo apt install -y maven
  3. 執行 Maven 並使用 -version 選項以確認安裝。

    mvn -version
  4. 使用 Maven 產生新的 Java 專案。若要這樣做,請使用終端機從您希望 Maven 產生專案的目錄執行下列命令 (例如環境的根目錄)。

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

    上述命令會在環境中建立以下專案目錄結構。

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

    如需有關上述目錄結構的詳細資訊,請參閱 Apache Maven Project 網站上的 Maven 快速入門 Archetype 認識標準目錄配置

  5. 修改專案的專案物件模型 (POM) 檔案。(POM檔案會定義 Maven 專案的設定。) 若要執行此操作,請從 Environment (環境) 視窗開啟 my-app/pom.xml 檔案。在編輯器中,使用以下程式碼取代該檔案的目前內容,然後儲存 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>

    上述POM檔案包含指定宣告的專案設定,例如:

    • artifactidmy-app 設定項目可設定專案的根目錄名稱,group-idcom.mycompany.app 設定項目可設定 com/mycompany/app 子目錄結構以及 packageApp.Java 檔案中的 AppTest.java 宣告。

    • artifactId 設定 my-app,其中packaging設定 jarversion設定 1.0-SNAPSHOTdescriptorRefjar-with-dependencies設定輸出JAR檔案名稱 my-app-1.0-SNAPSHOT-jar-with-dependencies.jar

    • plugin 本節宣告將建置包含JAR所有相依性的單一 。

    • 設定 groupIdcom.amazon.awsartifactId設定的 dependency區段aws-java-sdk包含 AWS SDK for Java 程式庫檔案。要使用的 AWS SDK for Java 版本是以 version 設定宣告。若要使用不同的版本,請取代此版本編號。

直接跳到步驟 5:在您的環境中設定 AWS 憑證管理

使用 Gradle 設定

  1. 在您的環境中安裝 Gradle。若要查看是否已安裝 Gradle,請使用 中的終端機 AWS Cloud9 IDE,使用 -version選項執行 Gradle。

    gradle -version

    如果成功,輸出會包含 Gradle 版本號碼。如果已安裝 Gradle,請直接跳到此程序中的步驟 4,使用 Gradle 在環境中產生新的 Java 專案。

  2. 使用終端機執行以下命令以安裝 Gradle。這些命令會安裝並執行 SDKMAN! 工具,然後使用 SDKMAN! 安裝最新版本的 Gradle。

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

    如需上述命令的詳細資訊,請參閱在 SDKMAN! 網站上安裝 和在 Gradle 網站上使用套件管理員安裝

  3. 執行 Gradle 並使用 -version 選項以確認安裝。

    gradle -version
  4. 使用 Gradle 在環境中產生新的 Java 專案。若要這樣做,請使用終端機執行以下命令來建立專案目錄,然後切換到該目錄。

    mkdir my-app cd my-app
  5. 執行以下命令,讓 Gradle 在環境的 my-app 目錄中產生新的 Java 應用程式專案。

    gradle init --type java-application

    上述命令會在環境中建立以下專案目錄結構。

    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. 修改專案的 AppTest.java。(如果您不執行此操作,專案可能不會如預期建置或執行。) 若要執行此操作,請從 Environment (環境) 視窗開啟 my-app/src/test/java/AppTest.java 檔案。在編輯器中,使用以下程式碼取代該檔案的目前內容,然後儲存 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. 修改專案的 build.gradle 檔案。(build.gradle 檔案定義 Gradle 專案的設定。) 若要執行此操作,請從 Environment (環境) 視窗開啟 my-app/build.gradle 檔案。在編輯器中,使用以下程式碼取代該檔案的目前內容,然後儲存 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'

    上述 build.gradle 檔案包含指定宣告的專案設定,例如:

    • io.spring.dependency-management 外掛程式用於匯入 AWS SDK for Java Maven 物料清單 (BOM),以管理專案的 AWS SDK for Java 相依性。 會classpath宣告要使用的版本。若要使用不同的版本,請取代此版本編號。

    • com.amazonaws:aws-java-sdk-s3 包含 AWS SDK for Java 程式庫檔案的 Amazon S3 部分。mavenBom 會宣告要使用的版本。如果您要使用不同的版本,請取代此版本編號。

步驟 5:在您的環境中設定 AWS 憑證管理

每次使用 AWS SDK for Java 呼叫 AWS 服務時,您必須隨呼叫提供一組 AWS 憑證。這些憑證會判斷 是否 AWS SDK for Java 具有適當的許可來進行該呼叫。如果登入資料未涵蓋適當許可,呼叫即會失敗。

在此步驟中,您會在環境中存放您的憑證。若要這麼做,請遵循 AWS 服務 從 中的環境呼叫 AWS Cloud9 中的指示,然後返回本主題。

如需其他資訊,請參閱 AWS SDK for Java 開發人員指南中的設定開發用的 AWS 憑證和區域

步驟 6:新增 AWS SDK程式碼

在此步驟中,您會新增程式碼以與 Amazon S3 互動,藉此建立儲存貯體、列出可用的儲存貯體,然後刪除您剛建立的儲存貯體。

Environment (環境) 視窗,開啟 my-app/src/main/java/com/mycompany/app/App.java 檔案 (適用於 Maven) 或開啟 my-app/src/main/java/App.java 檔案 (適用於 Gradle)。在編輯器中,使用以下程式碼取代該檔案的目前內容,然後儲存 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()); } } }

步驟 7:建置和執行 AWS SDK程式碼

若要執行上個步驟的程式碼,請從終端機執行以下命令。這些命令使用 Maven 或 Gradle 為專案建立可執行JAR檔,然後使用 Java Runner 執行 JAR。使用要在 Amazon S3 中建立的儲存貯體名稱 (例如,my-test-bucket) 和在 中建立儲存貯體作為輸入的 AWS 區域 ID (例如,) JAR執行us-east-2

如果是 Maven,請執行下列命令。

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

如果是 Gradle,請執行下列命令。

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

將您的結果與下列輸出比較。

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:

步驟 8:清除

為了避免在您使用此範例之後持續向 AWS 您的帳戶收取費用,您應該刪除環境。如需說明,請參閱「刪除 AWS Cloud9 中的環境」。