# 安装&使用

# 下载
https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/graalvm-ce-java11-windows-amd64-22.3.1.zip

https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/native-image-installable-svm-java11-windows-amd64-22.3.1.jar
1
2
3
4

# GraalVM

# 检查版本
cd graalvm-ce-java11-22.3.1/bin
java -version
1
2
3

# native-image

这个工具用来把Java程序转化为本地二进制包

本地镜像编译依赖的LLVM工具链

是由 Oracle Labs 开发的一种 AOT 编译器,应用所需的 class 依赖项及 runtime 库打包编译生成一个单独可执行文件。具有高效的 startup 及较小的运行时内存开销的优势。

但 GraalVM 并未内置只是提供 gu 安装工具,需要我们单独安装。

依赖GCC编译环境

# 安装Visual Studio的C++桌面开发环境
# 使用visual studio终端
# Visual Studio语言选择英文,否则编译报错
# 修改语言 => 打开visual studio install,修改语言包

# 测试是不是中文
### zh
D:\Program Files\Microsoft Visual Studio\2022\Community>cl.exe
用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.32.31332 版
...

### en
D:\Program Files\Microsoft Visual Studio\2022\Community>cl.exe
Microsoft (R) C/C++ Optimizing Compiler Version 19.32.31332 for x64
...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

安装 native-image

gu list
gu -L install native-image-installable-svm-java11-windows-amd64-22.3.1.jar

# D:\Program Files\Java\graalvm-ce-java11-22.3.1\bin\gu.cmd -L install native-image-installable-svm-java11-windows-amd64-22.3.1.jar
1
2
3
4

# 编译项目

# vs2022 终端运行
java -agentlib:native-image-agent=config-output-dir=E:\IDEA-Workplace\hxql-erp-admin\agentlib -jar hxql-erp-admin-1.0-SNAPSHOT.jar

java -agentlib:native-image-agent=config-output-dir=E:\www\javaWorkspace\luowenJava\agentlib -jar luowen.jar

java -agentlib:native-image-agent=config-output-dir=E:\www\javaWorkspace\luowenJava\src\main\resources\META-INF\native-image -jar luowen.jar

native-image -jar luowen.jar
1
2
3
4
5
6
7
8
config-output-dir配置好配置的输出目录,默认情况下,配置文件生成将在jvm停止后输出,也可以通过添加配置,定期输出,如

config-write-period-secs:按照此配置中的指定,每隔几秒钟执行一次定期写入。仅支持大于零的整数值。

config-write-initial-delay-secs:第一次写入的秒数。仅支持大于或等于零的整数值。仅当config-write-period-secs大于零时启用。

Java -agentlib:native-image-agent=config-output-dir=E:\IDEA-Workplace\hxql-erp-admin\agentlib,config-write-period-secs=60,config-write-initial-delay-secs=5 -jar hxql-erp-admin-1.0-SNAPSHOT.jar
1
2
3
4
5
6
7

curl https://start.spring.io/starter.zip -d dependencies=web -d bootVersion=2.4.1 -o graal-demo.zip