SpringBoot3之GraalVM之Windows详细安装及使用教程

配置Maven环境变量

我直接使用的是IDEA plugins文件夹下的maven
新建MAVEN_HOME环境变量
在这里插入图片描述
Path环境变量追加

%MAVEN_HOME%\bin

在这里插入图片描述

安装Visual Studio Community

因为GraalVM需要调用操作系统的底层工具,而Windows底层工具是VisualStudio,所以我们要先下载安装好VisualStudio。
在这里插入图片描述

下载Visual Studio Community

《Visual Studio Community官网下载》
在这里插入图片描述

下载完以后直接安装即可

在这里插入图片描述

选择桌面应用和移动应用(最重要的其实是MSVC环境)

在这里插入图片描述

语言包选择英语,不要选中文。

在这里插入图片描述

安装路径(可以不修改,推荐不改,但是一定要记住!)

在这里插入图片描述
然后点击安装

配置Visual Studio环境变量(重要

Path环境变量追加:Visual Studio安装路径

C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\bin\Hostx64\x64

新建INCLUDE环境变量:

C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\include;C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\shared;C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\ucrt;C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\um;C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\winrt;

在这里插入图片描述
新建lib环境变量:

C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\lib\x64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.22000.0\um\x64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.22000.0\ucrt\x64;

在这里插入图片描述

安装GraalVM

《GraalVM官网下载》
在这里插入图片描述
点击download后,下拉找到GraalVM Community Edition点击它
在这里插入图片描述
找到最近的GraalVM Community Edition X.X.X点击Assets(因为我的是SpringBoot3项目,起始JDK就要求17,所以我下载17)下载速度慢的话,可以使用第三方下载工具,如:迅雷等
选择如下2个内容下载
graalvm-ce-java17-windows-amd64-X.X.X.zip
native-image-installable-svm-java17-windows-amd64-X.X.X.jar

配置JDK环境变量为GraalVM的环境变量,因为GraalVM就是JDK

如果之前已经有Java的环境变量,则要替换为GraalVM
解压graalvm-ce-java17-windows-amd64-X.X.X.zip(GraalVM JDK)
在这里插入图片描述
配置Path
在这里插入图片描述

保存,Win+R输入CMD执行java -version测试看看JDK是否配置成功
在这里插入图片描述

安装 native-image

进入到native-image-installable-svm-java17-windows-amd64-X.X.X.jar下载目录在地址栏输入cmd,文件夹目录尽量不要有中文。
在这里插入图片描述
确保进入到了native-image-installable-svm-java17-windows-amd64-X.X.X.jar文件夹下面,或者通过CD进入这个文件夹下的路径

gu install --file native-image-installable-svm-java17-windows-amd64-X.X.X.jar

判断是否安装成功

native-image

成功则会输出以下内容

Please specify options for native-image building or use --help for more info.

Spring Boot 3

新增spring boot3项目选择JDK为GraalVM JDK17
在这里插入图片描述

pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.fu</groupId><artifactId>spring-boot3-aot-graalvm-native-demo</artifactId><version>1.0-SNAPSHOT</version><!-- 没有跟demo-maven作为父子项目,而是以SpringBoot作为父项目 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.0.5</version><relativePath/></parent><properties><java.version>17</java.version><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding></properties><dependencies><!-- web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies><build><plugins><!-- AOT Graalvm native maven 插件 --><plugin><groupId>org.graalvm.buildtools</groupId><artifactId>native-maven-plugin</artifactId></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>
建个HelloController.java和SpringBootApplication启动类
@RestController
public class HelloController {@GetMapping("hello")public String hello() {return "Hello World.";}}
构建exe文件

配置文件勾选native,否则生成的exe文件启动没问题,但是控制台会输出ERROR信息
在这里插入图片描述
maven
然后再执行native:build打包成exe可执行文件
在这里插入图片描述

启动target目录下的XXX.exe文件(这文件说实话有点大~)

在这里插入图片描述
访问localhost:8080/hello输出Hello World.
在这里插入图片描述

-P激活Native

等价于idea选择Native环境,如果不选择Native环境打包,则控制台输出日志会输出ERROR信息,但是程序可以正常运行。

mvn -Pnative native:build -f pom.xml

纯命令打包

进入到pom.xml文件目录下命令行执行cmd
在这里插入图片描述

mvn clean
mvn compile
mvn spring-boot:process-aot
mvn -Pnative native:build -f pom.xml

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/3898.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LabVIEW开发光线追踪可视化分段反射器测试台

LabVIEW开发光线追踪可视化分段反射器测试台 为了满足美国国家航空航天局&#xff08;NASA&#xff09;对未来望远镜的要求&#xff0c;新的红外空间天文台将在哈勃太空望远镜使用寿命结束后取代其。作为HST的继任者&#xff0c;詹姆斯韦伯太空望远镜&#xff08;JWST&#xf…

机器学习-方差和偏差理论

机器学习-方差和偏差理论 关于机器学习方差和偏差的内容其实很重要&#xff0c;这个方差和偏差可以帮助我们去分析&#xff0c;模型的泛化能力和过拟合的程度。 下面我们先给存储方差和偏差的公式&#xff1a; 注意&#xff0c;下式当中&#xff0c; f ( x ; D ) 表示在数据集…

Gitlab升级报错二:rails_migration[gitlab-rails] (gitlab::database_migrations line 51)

gitlab-ctl 修改文件目录后出现以下错误&#xff1a;从root --> home 先停掉gitlab: gitlab-ctl stop 单独启动数据库&#xff0c;如果不单独启动数据库&#xff0c;就会报以上错误 sudo gitlab-ctl start postgresql 解决办法&#xff1a; sudo gitlab-rake db:migrat…

登录校验-interceptor/拦截器

Interceptor 概念&#xff1a;拦截前端对后端的某些请求 使用步骤 自定义拦截器类&#xff0c;实现HandlerInterceptor接口&#xff0c;重写所有的方法&#xff08;preHandle方法在controller执行之前执行、【postHandle、afterCompletion】在controller执行后执行&#xff0…

《项目实战》构建SpringCloud alibaba项目(一、构建父工程、公共库、网关))

系列文章目录 构建SpringCloud alibaba项目&#xff08;一、构建父工程、公共库、网关&#xff09; 构建SpringCloud alibaba项目&#xff08;二、构建微服务鉴权子工程store-authority-service&#xff09; 文章目录 系列文章目录1、概要2、整体架构流程2.1、技术结构组成部分…

计算机网络-网络体系结构

目录 计算机网络的基本概念计算机网络的定义组成与功能计算机网络的分类按照网络的作用范围进行分类按照网络的使用者进行分类 计算机网络主要性能指标 计算机网络体系结构计算机网络协议、接口、服务等概念ISO/OSI 参考模型和 TCP/IP 模型OSI七层模型TCP/IP 模型封装与分用 计…

Java序列化与反序列化

概念&#xff1a; 序列化&#xff1a;将对象转化成字节序列反序列化&#xff1a;将字节序列转化成对象 在Java中&#xff0c;通过实现Serializable接口来声明一个类是可序列化的。被序列化的类及其内部所有引用对象&#xff0c;都必须实现Serializable接口&#xff0c;否则序列…

隐藏cobaltstrike服务器-nginx反向代理

隐藏nginx版本 编辑/etc/nginx/nginx.conf 取消server_tokens off 前面的注释 http转发80端口 编辑/etc/nginx/sites-enabled/default ## # You should look at the following URLs in order to grasp a solid understanding # of Nginx configuration files in order to …

Spring Boot 属性加载原理解析

基于Spring Boot 3.1.0 系列文章 Spring Boot 源码阅读初始化环境搭建Spring Boot 框架整体启动流程详解Spring Boot 系统初始化器详解Spring Boot 监听器详解Spring Boot banner详解Spring Boot 属性配置解析Spring Boot 属性加载原理解析 在《Spring Boot 框架整体启动流程详…

计算机视觉 - 理论 - 从卷积到识别

计算机视觉 - 理论入门 前言一&#xff0c;导论&#xff1a;二&#xff0c;卷积&#xff1a;图像去噪&#xff1a;常值卷积&#xff1a;高斯卷积&#xff1a;椒盐去噪&#xff1a;锐化程度&#xff1a; 三&#xff0c;边缘检测&#xff1a;图像信号导数&#xff1a;求导算子:图…

如何用rust实现一个异步channel

目录 前言思路实现功能代码实现 测试先引测试版包测试代码结果与分析思考 尾语 前言 使用通信来共享内存&#xff0c;而不是通过共享内存来通信 上面这句话&#xff0c;是每个go开发者在 处理多线程通信时 的座右铭&#xff0c;go甚至把实现这个理念的channel直接焊在编译器里&…

macOS编译AirMap开源全景图源码image-processing

1.克隆源码 git clone --recursive https://github.com/airmap/image-processing.git 2. 使用CLion打开CMakeLists.txt并做为工程打开 2.默认配置名为Default,可修改,下面的所有配置项都可改 3.点击OK后会自动生成