GraalVM 的安装与配置:从零开始,手把手教你玩转它!

yumo6661周前 (06-10)技术文章6

各位朋友,你是不是已经迫不及待地想把这个性能怪兽请到你的电脑里,让你的 Java 应用秒级启动,甚至尝试用它运行 Python 和 JavaScript?别急,万事开头难,但只要跟着我的步骤,你会发现安装和配置 GraalVM 并没有想象中那么复杂!

我们将主要介绍两种主流的安装方式:推荐使用 SDKMAN! (对于 Linux/macOS 用户,它能让你轻松管理多个 JDK 版本),以及手动下载安装 (适用于所有操作系统,包括 Windows)。无论你用哪种方式,我都会确保每一个步骤都清晰明了。


准备工作:在开始之前

在动手安装 GraalVM 之前,请确保你的系统满足以下基本要求:

1. 操作系统: 兼容主流操作系统,如 Linux (x86_64, AArch64)、macOS (x86_64, AArch64)、Windows (x86_64)。
2. 磁盘空间: 预留至少 1GB 的可用空间。
3. 网络连接: 下载安装包和组件需要网络。
4. 基础工具:

  • unziptar 命令: 解压下载的压缩包。
  • Shell 终端: Linux/macOS 使用 Bash 或 Zsh,Windows 推荐使用 Git Bash 或 PowerShell。
  • (可选)curlwget 下载工具。

方式一:推荐使用 SDKMAN! (适用于 Linux / macOS 用户)

SDKMAN! 是一个非常方便的命令行工具,用于管理各种 SDK(包括 JDK)。它能让你在不同版本的 GraalVM 或其他 JDK 之间轻松切换。

步骤 1:安装 SDKMAN!

如果你已经安装了 SDKMAN!,请跳过此步骤。
打开你的终端(Terminal),运行以下命令:

curl -s "https://get.sdkman.io" | bash

按照提示完成安装。安装完成后,通常需要重启终端或运行 source "$
HOME/.sdkman/bin/sdkman-init.sh"
来使 SDKMAN! 生效。

验证 SDKMAN! 是否安装成功:

sdk version

如果能显示版本信息,说明安装成功。

步骤 2:列出可用的 GraalVM 版本

在终端中运行:

sdk list java

你会看到一个长长的列表,其中包含各种 JDK 版本,包括 GraalVM。GraalVM 的标识通常是 graalvmgraalce (GraalVM Community Edition)。选择你想要安装的最新稳定版,比如 22.0.1.r17-graalce (这个版本号会不断更新,请选择最新的即可)。

步骤 3:安装 GraalVM

使用 sdk install java 命令安装你选择的 GraalVM 版本。例如:

sdk install java 22.0.1.r17-graalce # 替换为 sdk list java 中你看到的最新版本号

SDKMAN! 会自动下载并安装 GraalVM,并将其设置为你当前的默认 Java 版本。

步骤 4:验证安装

安装完成后,验证 GraalVM 是否已成功设置为默认 JDK:

java -version

输出应该显示 GraalVMGraalVM Community 字样。
例如:

openjdk version "17.0.1" 2021-10-19
OpenJDK Runtime Environment GraalVM CE 22.0.1 (build 17.0.1+12-jvmci-22.0-b05)
OpenJDK 64-Bit Server VM GraalVM CE 22.0.1 (build 17.0.1+12-jvmci-22.0-b05, mixed mode, sharing)

SDKMAN! 方式的安装到这里就结束了,非常便捷!


方式二:手动下载安装 (适用于所有操作系统,包括 Windows)

如果你不使用 SDKMAN!,或者你是 Windows 用户,手动下载安装是最通用的方法。

步骤 1:下载 GraalVM 安装包

访问 GraalVM 官方下载页面:
https://www.graalvm.org/downloads/

在页面中找到最新的 GraalVM Community Edition 版本。
选择适合你操作系统的压缩包(Linux 为 .tar.gz,macOS 为 .tar.gz,Windows 为 .zip)。
点击下载。

步骤 2:解压安装包

Linux / macOS:
将下载的 .tar.gz 文件移动到你想要安装 GraalVM 的目录(例如 ~/opt/usr/local)。
打开终端,进入该目录,然后解压:

mkdir -p ~/opt # 如果 ~/opt 不存在
mv graalvm-ce-java17-linux-amd64-*.tar.gz ~/opt/ # 假设你下载的是 Linux x64 JDK 17
cd ~/opt/
tar -xzf graalvm-ce-java17-linux-amd64-*.tar.gz

解压后你会得到一个名为 graalvm-ce-java17-22.0.1 (版本号可能不同) 的文件夹。为了方便,你可以将其重命名为一个更短的名称,例如 graalvmgraalvm-17

mv graalvm-ce-java17-22.0.1 graalvm

Windows:
将下载的 .zip 文件移动到你想要安装 GraalVM 的目录(例如 C:\Program Files\Java\C:\DevTools\)。
右键点击 .zip 文件,选择全部提取,将其解压到一个新文件夹(例如 graalvm-ce-java17-22.0.1)。同样,你可以将其重命名为 graalvm

步骤 3:配置环境变量 (Windows / Linux / macOS)

为了让系统能够找到 GraalVM,你需要设置 JAVA_HOME 环境变量和更新 PATH 环境变量。

Linux / macOS (推荐在 shell 配置文件中设置,如 ~/.bashrc, ~/.zshrc):
打开你的 shell 配置文件(例如 vi ~/.bashrc),在文件末尾添加以下行:

export GRAALVM_HOME=/path/to/your/graalvm # 将 /path/to/your/graalvm 替换为你的 GraalVM 解压路径
export JAVA_HOME=$GRAALVM_HOME
export PATH=$JAVA_HOME/bin:$PATH

保存文件,然后执行 source ~/.bashrc (或 source ~/.zshrc) 使配置生效。

Windows (通过系统设置)
1. 右键点击此电脑->属性->高级系统设置。
2. 点击环境变量按钮。
3. 在系统变量下,点击新建:

  • 变量名:GRAALVM_HOME
  • 变量值:C:\path\to\your\graalvm (替换为你的 GraalVM 解压路径,例如 C:\DevTools\graalvm)
    4. 找到系统变量中的 Path 变量,双击打开。
    5. 点击新建,添加 %GRAALVM_HOME%\bin
    6. 点击确定保存所有更改。

步骤 4:验证安装

打开一个新的终端窗口(或重启终端),运行:

java -version

输出应该显示 GraalVMGraalVM Community 字样。


核心配置:安装 Native Image 组件!

无论你通过哪种方式安装的 GraalVM,默认情况下,Native Image 编译功能并不是自带的。你需要额外安装它!这是开发 GraalVM Native Image 应用的关键步骤。

打开终端,运行:

gu install native-image

gu (GraalVM Updater) 是 GraalVM 的一个命令行工具,用于安装和管理 GraalVM 的组件。
安装过程可能需要下载一些文件,请耐心等待。

安装完成后,你可以验证 native-image 命令是否可用:

native-image --version

如果能显示版本信息,恭喜你,你已经成功安装了 Native Image 组件!

扩展配置:安装其他语言运行时(可选)

如果你想在 GraalVM 上运行 Python、JavaScript 等语言,也需要通过 gu 命令安装它们:

安装 JavaScript / Node.js 支持:

gu install js # 安装 JavaScript 运行时
gu install nodejs # 安装 Node.js 运行时

验证:js --versionnode --version

安装 Python 支持:

gu install python

验证:graalpython --version (注意,不是直接 python)

安装 R 支持:

gu install R

验证:R --version

简单体验:运行你的第一个 GraalVM 应用

1. 运行 Java 应用:
创建一个简单的 Java 文件 HelloWorld.java

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, GraalVM!");
    }
}

编译并运行:

javac HelloWorld.java
java HelloWorld

输出:Hello, GraalVM! (和普通 JDK 一样运行)

2. 运行第一个 Native Image:
使用 native-image 命令编译 HelloWorld.java

native-image HelloWorld

这会生成一个名为 helloworld (Linux/macOS) 或 helloworld.exe (Windows) 的可执行文件。
运行这个原生文件:

./helloworld # Linux/macOS
helloworld.exe # Windows

你会发现它几乎是瞬间启动!这正是 GraalVM Native Image 的魅力所在。

3. 运行其他语言(例如 Python):
创建一个 Python 文件 hello.py

print("Hello from GraalPy!")

运行:

graalpython hello.py

输出:Hello from GraalPy!


常见问题与排查:

  • java -version 没有显示 GraalVM?检查环境变量 JAVA_HOMEPATH 是否设置正确,并且指向了 GraalVM 的安装目录。在 Linux/macOS 上,确保 source 了你的 shell 配置文件。在 Windows 上,确保在设置环境变量后打开了一个新的终端窗口。
  • gu: command not found这说明 gu 命令没有在你的 PATH 环境变量中。检查 PATH 中是否包含了 $JAVA_HOME/bin
  • native-image: command not found说明你没有安装 native-image 组件。请运行 gu install native-image
  • 编译 Native Image 失败?初次尝试时,可能是因为缺少必要的依赖(如 glibc-devel, zlib-devel 等,具体取决于你的 Linux 发行版),请查阅 GraalVM 官方文档中 Native Image 的构建要求(Build Requirements)。更常见的是,你的应用或其依赖库使用了 GraalVM Native Image 无法静态分析的动态特性(反射、动态代理等)。这时你需要提供原生提示(Native Hints)。这通常是开发 Native Image 应用的大坑,我们会在未来的文章中详细介绍。

结语:你的 GraalVM 之旅,正式启程!

恭喜你!你已经成功地安装并配置了 GraalVM,并且亲手体验了它带来的极速启动和多语言运行能力。这仅仅是 GraalVM 强大功能的冰山一角。随着你深入学习和实践,你会发现它在云原生、微服务、边缘计算等领域的巨大潜力。

现在,是时候开始你的 GraalVM 探索之旅了!用它来编译你的 Spring Boot 应用,体验瞬间启动的快感;或者尝试用它运行你的 Python 脚本,感受性能的飞跃。

你对 GraalVM 的初体验如何?在安装过程中遇到了哪些小插曲?或者你已经开始用它构建项目了?欢迎在评论区分享你的经验和问题,我们一起学习,一起进步!

相关文章

在 Windows 11 上验证 Python 安装的多种方法

Python 是一种广泛使用的编程语言,用于开发各种应用程序,甚至用于开发人工智能、机器学习和数据分析等。因此,如果你是编程新手,并且在 Windows 11 或 10 电脑上安装了 Python,但...

Java开发者的代码规范与习惯养成

Java开发者的代码规范与习惯养成作为一名Java开发者,养成良好的代码规范和习惯是迈向卓越的关键一步。代码规范不仅仅是为了让代码看起来整齐美观,更重要的是为了提高代码的可读性、可维护性和团队协作效率...

Python配置文件管理:让你的程序更灵活

Python配置文件管理:让你的程序更灵活大家好啊!今天我要和大家聊一个特别实用的话题 —— Python中的配置文件管理。你是否遇到过需要经常修改程序中的参数,却要反复修改代码的情况?或者想让你的程...

基于Spring Security的JWT认证深度解析与实践指南

一、JWT认证核心原理剖析1. JWT令牌结构解析Header:采用HMAC SHA256算法示例json{ "alg": "HS256", "typ&...

在PyCharm中使用pyenv指定的Python:配置指南

在Python开发中,我们常常需要管理多个Python版本,以适应不同项目的需求。`pyenv` 是一个强大的工具,能够帮助我们轻松管理Python版本,而PyCharm则是一款广泛使用的Python...

Pytest+Allure,快速提升我们的测试效率

Allure 简介与安装Allure 是由 Java 语言开发的一个轻量级,灵活的测试报告工具。Allure 多平台的 Report 框架。Allure 支持多语言,包括 python、JaveScr...