OCI Cloud Shell 中的 Oracle GraalVM

本指南向您展示如何在 Oracle Cloud Infrastructure (OCI) Cloud Shell 中开始使用 Oracle GraalVM。

OCI Cloud Shell 是一个可从 Oracle Cloud 控制台访问的基于浏览器的终端。它提供对预认证的 OCI 命令行界面 (CLI) 的 Linux Shell 访问权限、预安装的开发人员工具,并附带 5GB 存储空间。

适用于 JDK 17 的 Oracle GraalVM 已预安装在 Cloud Shell 中,因此您无需安装和配置开发计算机。

注意:Oracle GraalVM 许可和支持已包含在 Oracle Cloud Infrastructure 订阅中,无需额外费用。

在 Cloud Shell 中使用 Oracle GraalVM 的步骤

Cloud Shell 预装了多个 JDK,包括 Oracle GraalVM JDK。

  1. 登录到 Oracle Cloud 控制台并启动 Cloud Shell.

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

    输出列出了 Cloud Shell 中预安装的 JDK:Oracle GraalVM for JDK 17、Oracle JDK 11 和 Oracle JDK 8。标有星号的 JDK 是当前使用的 JDK。

  3. 选择适用于 JDK 17 的 Oracle GraalVM 作为当前 JDK
     csruntimectl java set graalvmjdk-17
    

    您将看到打印的确认消息:“The current managed java version is set to 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 3 之上。pom.xml 文件是使用 Spring Initializr 生成的,并添加了 Spring Native Tools 功能。Spring AOT 插件 将 Spring 应用程序提前转换(AOT)为原生可执行文件。

  1. 克隆 demos 仓库并更改到应用程序根目录
    git clone https://github.com/graalvm/graalvm-demos.git
    cd graalvm-demos/native-image
    
  2. 使用 Maven 构建应用程序(Apache Maven 也预安装在 Cloud Shell 中)
     ./mvnw clean package
    

    这将生成一个可运行的 JAR 文件,其中包含应用程序的所有依赖项以及正确配置的 MANIFEST 文件。

  3. 运行 Java 应用程序
     java -jar ./target/benchmark-jibber-0.0.1-SNAPSHOT.jar &
    

    调用其 REST 端点

     curl https://:8080/jibber
    

    您应该会看到一些无意义的诗句被打印出来。

    将应用程序带到前台

     fg
    

    通过按 Ctrl+c 停止应用程序。

  4. 接下来,使用 native Maven 配置文件 为此 Spring Boot 应用程序构建一个原生可执行文件。
     ./mvnw -Pnative native:compile
    

    这将在 target 目录中生成一个名为 benchmark-jibber 的 Linux 原生可执行文件。

  5. 运行原生可执行文件,使用以下命令
    ./target/benchmark-jibber &
    

    调用其端点进行测试

     curl https://:8080/jibber
    

    同样,您应该会看到一些无意义的诗句被打印出来。

    将应用程序带到前台

     fg
    

    通过按 Ctrl+c 停止应用程序。

恭喜!您已成功在 Cloud Shell 中使用带有 Native Image 的 Oracle GraalVM JDK 构建并测试了 Spring Boot REST 应用程序。

因此,您可以在 OCI Cloud Shell 中使用 Oracle GraalVM 构建和测试带有 Micronaut、Spring 和其他微服务框架的简单 Java 应用程序。