在 OCI Cloud Shell 中使用 Oracle GraalVM

本指南說明如何在 Oracle Cloud Infrastructure (OCI) Cloud Shell 中開始使用 Oracle GraalVM。

OCI Cloud Shell 是一個可從 Oracle Cloud Console 存取的瀏覽器終端機。它提供對 Linux shell 的存取,其中包含預先驗證的 OCI 命令列介面 (CLI)、預先安裝的開發人員工具,並提供 5GB 的儲存空間。

Cloud Shell 中已預先安裝適用於 JDK 17 的 Oracle GraalVM,因此您不必安裝和設定開發機器。

注意:Oracle GraalVM 的授權和支援已包含在 Oracle Cloud Infrastructure 訂閱中,無需額外費用。

在 Cloud Shell 中使用 Oracle GraalVM 的步驟

Cloud Shell 具有多個預先安裝的 JDK,包括 Oracle GraalVM JDK。

  1. 登入 Oracle Cloud Console 並啟動 Cloud Shell.

  2. 使用 csruntimectl java list 命令列出已安裝的 JDK。
     csruntimectl java list
    

    輸出會列出 Cloud Shell 中預先安裝的 JDK:適用於 JDK 17 的 Oracle GraalVM、Oracle JDK 11 和 Oracle JDK 8。標有星號的 JDK 是目前的 JDK。

  3. 選取適用於 JDK 17 的 Oracle GraalVM 作為目前的 JDK
     csruntimectl java set graalvmjdk-17
    

    您將看到列印出的確認訊息:「目前的受管理 java 版本設定為 graalvmjdk-17」。

  4. 現在確認環境變數 PATHJAVA_HOME 的值,以及 javanative-image 工具的版本
     echo $JAVA_HOME
    
     echo $PATH
    
     java -version
    
     native-image --version
    

您已準備好在 Cloud Shell 中使用 Oracle GraalVM JDK 執行 Java 應用程式。

執行 Java 應用程式

此範例是一個基於 REST 的最小應用程式,使用 Maven 建構於 Spring Boot 之上。pom.xml 檔案是使用 Spring Initializr 產生的,並加入了 Spring Native Tools 作為一項功能。Spring AOT 外掛程式 會將 Spring 應用程式預先轉換為原生可執行檔。

  1. 複製 demos 儲存庫並變更至應用程式根目錄
    git clone https://github.com/graalvm/graalvm-demos.git
    cd graalvm-demos/spring-native-image
    
  2. 使用 Maven 建構應用程式 (Apache Maven 也預先安裝在 Cloud Shell 中)
     mvn clean package
    

    這會產生一個可執行的 JAR 檔案,其中包含應用程式的所有相依性以及正確設定的 MANIFEST 檔案。

  3. 執行 Java 應用程式
     java -jar ./target/benchmark-jibber-0.0.1-SNAPSHOT.jar &
    

    呼叫其 REST 端點

     curl http://localhost:8080/jibber
    

    您應該會看到一些無意義的詩句列印出來。

    將應用程式帶到前景

     fg
    

    按下 Ctrl+c 來停止應用程式。

  4. 接下來,使用 native Maven 設定檔 為此 Spring Boot 應用程式建構原生可執行檔。
     mvn -Pnative native:compile
    

    這會在 target 目錄中產生一個名為 benchmark-jibber 的 Linux 原生可執行檔。

  5. 使用下列命令執行原生可執行檔
    ./target/benchmark-jibber &
    

    呼叫其端點進行測試

     curl http://localhost:8080/jibber
    

    您應該會再次看到一些無意義的詩句列印出來。

    將應用程式帶到前景

     fg
    

    按下 Ctrl+c 來停止應用程式。

恭喜!您已成功使用 Oracle GraalVM JDK 和 Native Image 在 Cloud Shell 中建構和測試 Spring Boot REST 應用程式。

因此,您可以使用 OCI Cloud Shell 中的 Oracle GraalVM 來建構和測試具有 Micronaut、Spring 和其他微服務架構的簡單 Java 應用程式。