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。
- 使用
csruntimectl java list
命令列出已安装的 JDK。csruntimectl java list
输出列出了 Cloud Shell 中预安装的 JDK:Oracle GraalVM for JDK 17、Oracle JDK 11 和 Oracle JDK 8。标有星号的 JDK 是当前使用的 JDK。
- 选择适用于 JDK 17 的 Oracle GraalVM 作为当前 JDK
csruntimectl java set graalvmjdk-17
您将看到打印的确认消息:“The current managed java version is set to graalvmjdk-17”。
- 现在确认环境变量
PATH
和JAVA_HOME
的值,以及java
和native-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)为原生可执行文件。
- 克隆 demos 仓库并更改到应用程序根目录
git clone https://github.com/graalvm/graalvm-demos.git cd graalvm-demos/native-image
- 使用 Maven 构建应用程序(Apache Maven 也预安装在 Cloud Shell 中)
./mvnw clean package
这将生成一个可运行的 JAR 文件,其中包含应用程序的所有依赖项以及正确配置的
MANIFEST
文件。 - 运行 Java 应用程序
java -jar ./target/benchmark-jibber-0.0.1-SNAPSHOT.jar &
调用其 REST 端点
curl https://:8080/jibber
您应该会看到一些无意义的诗句被打印出来。
将应用程序带到前台
fg
通过按 Ctrl+c 停止应用程序。
- 接下来,使用
native
Maven 配置文件 为此 Spring Boot 应用程序构建一个原生可执行文件。./mvnw -Pnative native:compile
这将在 target 目录中生成一个名为 benchmark-jibber 的 Linux 原生可执行文件。
- 运行原生可执行文件,使用以下命令
./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 应用程序。