赞
踩
环境:Windows10
资源下载地址:
1、安装graalvm并配置环境变量
配置环境变量(同JDK)
如下图则为成功
2、安装GRaalvm Native-image工具
安装命令,进入到此jar的存放目录,执行命令
gu -L install native-image-installable-svm-java11-windows-amd64-20.2.0.jar
如下图
3、Visual Studio Installer
初始化x64编译环境(call “vs的vcvars64.bat文件路径”),如下图表示编译环境正常
4、GraalVm的反射配置辅助工具agentlib配置及使用
Graalvm通过静态分析提前编译来为Java应用程序构建高度优化的本机可执行文件,这就需要在编译时就知道所有的程序类型,而java中的反射、动态代理等功能,在编译时不确定具体的类型,所以在使用GraalVm构建native image前需要通过配置列出反射可见的所有类型。反射的配置是一个json格式的文件。为了简化这种反射的配置,GraalVm提供agentlib工具,来辅助生成这个配置文件。为了更方便地准备这些配置文件,GraalVM提供了一个代理,该代理可以跟踪常规Java VM上执行动态功能的所有使用情况。可以在GraalVM的 java命令的命令行上启用它,在项目中新建agentlib文件夹,进入到jar所在的目录,从此目录进入cmd执行如下命令:
java -agentlib:native-image-agent=config-output-dir=E:\IDEA-Workplace\hxql-erp-admin\agentlib -jar hxql-erp-admin-1.0-SNAPSHOT.jar
然后会生成下面这些东西
onfig-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
在执行期间,代理与Java VM交互以拦截所有查找类,方法,字段,资源或请求代理访问的调用。然后,代理生成的文件jni-config.json,reflect-config.json,proxy-config.json、resource-config.json在指定的目录输出。生成的文件是JSON格式的独立配置文件,其中包含所有拦截的动态访问。
在使用agentlib生成配置时,建议将应用的测试用例全部跑一边,让应用覆盖到所有的业务接口,不然,生成的配置可能覆盖不到所有的反射类
这一部分援引脚本之家GraalVm的反射配置辅助工具agentlib配置及使用_java_脚本之家 (jb51.net)
通过将生成的配置文件放置在项目的resources/META-INF/native-image/类路径上的目录中(GraalVm提供的默认的配置加载路径)使其生效
5、先执行package命令编译,然后进到target目录下,依次执行如下命令
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvars64.bat"
native-image -jar hxql-erp-admin-1.0-SNAPSHOT.jar
双击.exe文件即可运行
项目以.exe文件形式启动后接口运行效率较之前.jar形式启动有较明显提升
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。