GraalVM 的安装与配置:从零开始,手把手教你玩转它!
各位朋友,你是不是已经迫不及待地想把这个性能怪兽请到你的电脑里,让你的 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. 基础工具:
- unzip 或 tar 命令: 解压下载的压缩包。
- Shell 终端: Linux/macOS 使用 Bash 或 Zsh,Windows 推荐使用 Git Bash 或 PowerShell。
- (可选)curl 或 wget: 下载工具。
方式一:推荐使用 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 的标识通常是 graalvm 或 graalce (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
输出应该显示 GraalVM 或 GraalVM 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 (版本号可能不同) 的文件夹。为了方便,你可以将其重命名为一个更短的名称,例如 graalvm 或 graalvm-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
输出应该显示 GraalVM 或 GraalVM 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 --version 或 node --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_HOME 和 PATH 是否设置正确,并且指向了 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 的初体验如何?在安装过程中遇到了哪些小插曲?或者你已经开始用它构建项目了?欢迎在评论区分享你的经验和问题,我们一起学习,一起进步!