一、在 Windows 平台上安装
GraalVM 支持在 x64 架构的 Windows 上运行。我们建议在 Windows 上通过压缩包方式安装 GraalVM。
- 从压缩包安装
- Windows 上 Native Image 的先决条件
- 其他安装选项
1. 从压缩包安装
-
访问 GraalVM 下载页面。选择 Java 版本,选择 Windows 操作系统,然后下载。
-
切换到您想要安装 GraalVM 的目录,然后将 .zip 压缩包文件移动到该目录。
-
将压缩包解压到您的文件系统。
-
机器上可能安装了多个 JDK。下一步是配置运行时环境。通过命令行设置环境变量在 Windows 8、10 和 11 上的操作方式相同。
-
设置
JAVA_HOME环境变量指向 GraalVM 安装目录,例如:setx /M JAVA_HOME "C:Progra~1Java" -
设置
PATH环境变量的值指向 GraalVM 的 bin 目录:setx /M PATH "C:Progra~1Javabin;%PATH%" 注意
/M标志(等同于-m)需要提升的用户权限。
-
-
重启命令提示符以重新加载环境变量。然后使用以下命令检查变量是否设置正确:
echo %PATH% echo %JAVA_HOME%
或者,您可以通过 Windows GUI 设置环境变量:
- 进入 Windows 开始菜单,然后选择 设置,再选择 高级。
- 点击 环境变量。在"系统变量"部分找到
JAVA_HOME变量并选择它。 - 点击 编辑。
- 点击 新建。
- 点击 浏览 找到要添加的目录。点击 确定 确认。
- 重启命令提示符以重新加载环境变量。
对 PATH 环境变量重复相同的操作。
2. Windows 上 Native Image 的先决条件
在 Windows 上,Native Image 需要 Visual Studio 和 Microsoft Visual C++ (MSVC)。使用 Visual Studio 2022 版本 17.6.0 或更高版本。
2.1 安装 Visual Studio Build Tools 和 Windows SDK
-
从 visualstudio.microsoft.com 下载 Visual Studio Build Tools 2022 或更高版本(C 开发环境)。
-
通过打开您下载的文件开始安装,然后点击 继续:
-
在主窗口中选择 使用 C++ 的桌面开发 复选框。在右侧的安装详细信息下,确保选中两个必需组件:Windows 11 SDK 和 MSVC (...) C++ x64/x86 构建工具。点击 安装 继续。
现在您应该能够使用 GraalVM Native Image 进行构建了。
2.2 检查现有的 Visual Studio 安装
如果您的系统上已经安装了 Visual Studio,请按照以下步骤检查是否安装了正确的组件。
-
打开 Visual Studio 安装程序:
-
在已安装选项卡下,点击 修改 并选择 单个组件:
-
然后滚动到底部,确认选中了 Windows 11 SDK 和 Visual Studio SDK 复选框。现在您可以开始使用 Native Image 了。
2.3 开始使用 Native Image
如果 Native Image 能在已知位置找到合适的 Visual Studio 安装,它会自动设置构建环境。在您的 PATH 中有 GraalVM JDK 后,您现在可以在命令提示符 (cmd) 或 PowerShell (pwsh) 中运行 native-image 实用程序。
要检查 native-image 版本,运行:
C:> native-image.cmd --version
要使用 Native Build Tools Maven 插件构建项目,运行:
mvnw.cmd native:compile
要使用 Native Build Tools Gradle 插件构建项目,运行:
gradlew.bat nativeCompile
本指南是为 Windows 11 编写的,但对 Windows 8 和 10 也应该有效。
3. 运行应用程序
Oracle GraalVM 包含 Java 开发工具包 (JDK)、即时编译器(Graal 编译器)、Native Image 和其他熟悉的 Java 工具。您可以像在 IDE 中使用任何其他 JDK 一样使用 GraalVM JDK,因此在安装了 Oracle GraalVM 后,您可以无需修改地运行任何 Java 应用程序。
java 启动器以 Graal 作为最后一层编译器运行 JVM。检查已安装的 Java 版本:
java -version
使用 GraalVM Native Image,您可以将 Java 字节码编译为特定于平台的、自包含的本机可执行文件,以实现更快的启动速度和更小的应用程序占用空间。
将此 HelloWorld.java 应用程序编译为字节码,然后构建本机可执行文件:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
javac HelloWorld.java
native-image HelloWorld
最后一个命令在当前工作目录中生成一个名为 helloworld 的可执行文件。调用它会运行 HelloWorld 类的本机编译代码,如下所示:
./helloworld
Hello, World!