武士跑酷斩
19.14MB · 2025-09-30
GraalVM 支持在 x64 架构的 Windows 上运行。我们建议在 Windows 上通过压缩包方式安装 GraalVM。
访问 GraalVM 下载页面。选择 Java 版本,选择 Windows 操作系统,然后下载。
切换到您想要安装 GraalVM 的目录,然后将 .zip 压缩包文件移动到该目录。
将压缩包解压到您的文件系统。
机器上可能安装了多个 JDK。下一步是配置运行时环境。通过命令行设置环境变量在 Windows 8、10 和 11 上的操作方式相同。
设置 JAVA_HOME
环境变量指向 GraalVM 安装目录,例如:
setx /M JAVA_HOME "C:Progra~1Java<graalvm>"
设置 PATH
环境变量的值指向 GraalVM 的 bin 目录:
setx /M PATH "C:Progra~1Java<graalvm>bin;%PATH%"
注意 /M
标志(等同于 -m
)需要提升的用户权限。
重启命令提示符以重新加载环境变量。然后使用以下命令检查变量是否设置正确:
echo %PATH%
echo %JAVA_HOME%
或者,您可以通过 Windows GUI 设置环境变量:
JAVA_HOME
变量并选择它。对 PATH
环境变量重复相同的操作。
在 Windows 上,Native Image 需要 Visual Studio 和 Microsoft Visual C++ (MSVC)。使用 Visual Studio 2022 版本 17.6.0 或更高版本。
从 visualstudio.microsoft.com 下载 Visual Studio Build Tools 2022 或更高版本(C 开发环境)。
通过打开您下载的文件开始安装,然后点击 继续:
在主窗口中选择 使用 C++ 的桌面开发 复选框。在右侧的安装详细信息下,确保选中两个必需组件:Windows 11 SDK 和 MSVC (...) C++ x64/x86 构建工具。点击 安装 继续。
现在您应该能够使用 GraalVM Native Image 进行构建了。
如果您的系统上已经安装了 Visual Studio,请按照以下步骤检查是否安装了正确的组件。
打开 Visual Studio 安装程序:
在已安装选项卡下,点击 修改 并选择 单个组件:
然后滚动到底部,确认选中了 Windows 11 SDK 和 Visual Studio SDK 复选框。现在您可以开始使用 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 也应该有效。
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!