此文章只涉及 Windows版 graalVm
下载与安装
1.1 下载
官网下载的话,下载社区版即可
1.2 设置环境变量(根据自己路径来配置)
就和配JDK环境变量一模一样,只是把原来JDK的环境变量改成GraalVM
JAVA_HOME : D:\developer\graalvm-ce-java8-21.1.0
PATH : %JAVA_HOME%\bin
下图表示配置成功
1.3 安装 Visual Studio(关系到后面graalVm的编译)
Microsoft C++ 生成工具 - Visual Studio下载地址
安装如下组件即可,如图:
1.4 配置 VS 环境变量(非常重要)
以下文件路径只是笔者电脑上的,具体路径按自己电脑路径修改即可。基本上路径是大差不差的
- Include 变量
INCLUDE = C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared;C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um;C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include;
- lib 变量
LIB = C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\ucrt\x64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\um\x64;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\lib\x64;
- path 变量
path = C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64
1.5 安装 GraalVm 插件
# CMD 运行命令
gu install native-image
如果出现 jar 包下载超时,还是请手动下载或者挂代理等。下载下来放到<GraalVm的安装路径>\lib\installer\components文件夹下,就不用cmd下载了
笔者已经把该资源放到文章开头的百度云链接里面了。有需要的可以取
下载完成后,运行命令:
gu list
# 结果如下,说明成功
ComponentId Version Component name Stability Origin
---------------------------------------------------------------------------------------------------------------------------------
graalvm 22.3.0 GraalVM Core Supported
native-image 22.3.0 Native Image Early adopter github.com
1.6 测试案例
创建一个普通的 java项目(不是maven)
/**
* @author misury
**/
public class Main {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
编译该类
# 生成Class文件
javac Main.java
找到Class文件的存放路径
# 运行命令
native-image Main
1.7 结果
一般运行到下图这样的,就大概不会出现异常了。
编译成功
下图是编译后的产物
CMD下运行的结果,正确!
这时,GraalVm的所有环境搭建工作全部结束了。有一些错误可以参考下方或者浏览器搜索
常见错误
以下问题的解决方式,通常都是环境变量配置的问题,检查环境变量的配置即可!
未配置VS环境变量
- Default native-compiler executable ‘cl.exe’ not found via environment variable PATH
未配置 INCLUDE 环境变量
- fatal error C1034: stdio.h: 不包括路径集
未配置LIB环境变量
- fatal error LNK1104: 无法打开文件“LIBCMT.lib”]
目前未知原因
fatal error C1083: 无法打开包括文件: “excpt.h”: No such file or directory]
- 解决方法:我个人环境变量已经配好了,但是还是有这个问题。没有分析到什么原因。解决办法倒是有一个,不过不是很聪明
把这个目录下的错误所指出的文件
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include
复制到
C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt
目录下即可
不过出现这种错误,一般不会是因为某一个文件找不到发生错误,通常是一堆文件找不到。我的做法比较粗暴,就是直接把上面提到目录里面所有的.h文件复制到目标目录里面、再运行native-image Main,即可成功