1.11. 以原生模式打包并运行红帽构建的 Quarkus 入门应用程序


在原生模式中,应用构建的输出是一个独立于平台的原生二进制文件,而不是压缩或归档 JAR 文件。有关原生模式与 Java 虚拟机(JVM)不同的更多信息,请参阅 JVM 和原生构建模式

先决条件

  • 已安装 OpenJDK 17 或 21,并设置 JAVA_HOME 环境变量来指定 Java SDK 的位置。
  • 已安装 Apache Maven 3.9.9。
  • 您有一个正常工作的 C 开发环境
  • 您有可正常工作的容器运行时,如 Docker 或 Podman。
  • 可选 :如果要使用 Quarkus 命令行界面(CLI),请确保已安装它。

    • 有关如何安装 Quarkus CLI 的说明,请参阅 Quarkus CLI 中的特定于社区的信息。
  • 您已克隆并编译了 Quarkus Getting Started 项目
  • 您已下载并安装了 GraalVM 的社区或企业版本。

    • 要下载并安装社区或 GraalVM 的企业级版本,请参阅官方 使用 GraalVM 文档。
    • 或者,使用特定于平台的安装工具,如 sdkmanhomebrewscoop
注意

虽然您可以使用 GraalVM 的社区版本完成 Getting Started 指南中的所有流程,但红帽构建的 Quarkus 生产环境中不支持 GraalVM 社区版本。如需更多信息,请参阅将 红帽构建的 Quarkus 应用程序编译到原生可执行文件

流程

  1. 通过将 GRAALVM_HOME 环境变量设置为 GraalVM 安装目录来配置运行时环境。例如:

    Copy to Clipboard Toggle word wrap
    export GRAALVM_HOME=$HOME/Development/graalvm/
    • 在 macOS 中,将变量设置为 Home 子目录:

      Copy to Clipboard Toggle word wrap
      export GRAALVM_HOME=$HOME/Development/graalvm/Contents/Home/
    • 在 Windows 服务器上,使用 Control Panel 设置环境变量。
  2. 安装 native-image 工具:

    Copy to Clipboard Toggle word wrap
    ${GRAALVM_HOME}/bin/gu install native-image
  3. JAVA_HOME 环境变量设置为 GraalVM 安装目录:

    Copy to Clipboard Toggle word wrap
    export JAVA_HOME=${GRAALVM_HOME}
  4. 将 GraalVM bin 目录添加到路径中:

    Copy to Clipboard Toggle word wrap
    export PATH=${GRAALVM_HOME}/bin:$PATH
  5. 进入 Getting Started 项目文件夹:

    Copy to Clipboard Toggle word wrap
    cd getting-started
  6. 使用以下方法之一编译原生镜像:

    • 使用 Maven:

      Copy to Clipboard Toggle word wrap
      mvn clean package -Pnative
    • 使用 Quarkus CLI:

      Copy to Clipboard Toggle word wrap
      quarkus build --native
    • 使用 Maven 打包程序:

      Copy to Clipboard Toggle word wrap
      ./mvnw clean package -Pnative

验证

  1. 启动应用程序:

    Copy to Clipboard Toggle word wrap
    ./target/getting-started-1.0.0-SNAPSHOT-runner
  2. 观察日志消息,并验证它是否包含 原生 一词:

    Copy to Clipboard Toggle word wrap
    2024-09-25 08:35:51,505 INFO [io.quarkus] (main) getting-started 1.0.0-SNAPSHOT native (powered by Quarkus 3.20.0.redhat-00002) started in 0.043s.
    Listening on: http://0.0.0.0:8080

其他资源

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat, Inc.