Windows环境下Springboot3+Graalvm+Idea 打包成原生镜像 踩坑

	https://github.com/oracle/graal/https://github.com/graalvm/graalvm-ce-builds/releases/对应关系graalvm-ce-java17-windows-amd64-X.X.X.zipnative-image-installable-svm-java17-windows-amd64-X.X.X.jar本人使用:graalvm-ce-java17-windows-amd64-23.0.1.zipnative-image-installable-svm-java17-windows-amd64-23.0.1.jar配置和JDK的配置一样,安装完后 java -version 查看对应的native-image 版本,配置完需要安装对应版本的native-image[是一个jar包]gu install --file native-image-installable-svm-java17-windows-amd64-X.X.X.jarWindows上使用Graalvm需要C++的支持,可以从微软Visual Studio Installer安装器上去安装对应的选中C++桌面应用库即可安装完成后就会有集成了C/C++环境的 X64 Native Tools Commond 命令行可以使用native-image命令完成打包了普通的Java应用直接使用Graalvm的native-image打包即可, Springboot应用需要native-maven-plugin插件支持普通Java应用:单个包含Java主启动类[假设为Main.java]的文件, 使用javac 编译后[Mian.class] 在 X64 Native Tools Commond 命令行 使用 native-image Main 即可生成exe可执行程序如果是一个jar包, jar里面需要插件指定好主启动类[假设为Mian] native-image -cp xxx.jar MianSpringboot应用:在 X64 Native Tools Commond 命令行 mvn clean package -Pnative -DskipTests & mvn native:build  [mvn native:compile-no-fork 也可以]mvn -Pnative -DskipTests clean native:compile / mvn -Pnative -DskipTests clean native:compile-no-fork如果直接在Idea里面通过界面的方式,或者在普通的cmd命令行[一点要注意PowerShell是不行的,这个PowerShell不会引用环境变量里面的东西],执行是有问题的,应该是缺少了C/C++的一些环境,这个解决方法是非常恶心的[就是配置环境变量KEY必须是固定的]如果真的是使用Graalvm作为开发JVM了, 还是建议在Linux上进行开发, 对比Windows应该会少很多问题[目前来说使用Graalvm还是有很多局限,还出在发展阶段]注意本人这里是Win11系统,如果是Windows10 下面的 C:\Windows Kits 前缀应该是在 C:\Program Files (x86)\Windows Kits[参考的网上的, 实在不确定 可以使用everything软件查询位置]Windows使用Idea的Maven可视化普通cmd命令行,就能执行native打包的 解决方法[就是对Windows下的需要的C/C++ 环境进行配置,而且有配置要求]都是在在Windows系统变量Path里面配置配置项1: Path变量里面配置 Visual Studio 的安全路径C:\Software\VisualStudio2022\VC\Tools\MSVC\14.37.32822\bin\Hostx64\x64配置项2: 新建一个KEY为INCLUDE的变量[变量名必须要INCLUDE],变量值如下,注意写的时候把他们全部使用分号; 分割写成一行即可,这里为了展示好看就没有写成一行C:\Software\VisualStudio2022\VC\Tools\MSVC\14.37.32822\includeC:\Windows Kits\10\Include\10.0.22621.0\sharedC:\Windows Kits\10\Include\10.0.22621.0\ucrtC:\Windows Kits\10\Include\10.0.22621.0\umC:\Windows Kits\10\Include\10.0.22621.0\winrt配置项3: 新建一个KEY为lib的变量[变量名是否必须为lib没考证过],变量值如下,同理写的时候把他们全部使用分号; 分割写成一行即可,这里为了展示好看就没有写成一行C:\Software\VisualStudio2022\VC\Tools\MSVC\14.37.32822\lib\x64C:\Windows Kits\10\Lib\10.0.22621.0\um\x64C:\Windows Kits\10\Lib\10.0.22621.0\ucrt\x64

使用Idea的Maven可视化窗口 clean -> package -> spring-boot:process-aot -> native:build
或者直接Maven命令, 这时在普通cmd下就可以: mvn clean package -Pnative -DskipTests & mvn native:build [推荐使用]
打包完成
启动exe
访问页面
参考文章: https://blog.csdn.net/weixin_43933728/article/details/131479472

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

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

相关文章

多元函数的微分法

目录 复合函数微分法 隐函数微分法 复合函数求导与全微分 隐函数偏导数与全微分 复合函数微分法 复合函数微分法是一种求导方法,用于计算复合函数的导数。 假设有一个复合函数yf(u),其中ug(x),则复合函数微分法可以用于计算y对x的导数。根…

win10win11截图技巧——不用安装其他截图工具或者运行其他截图工具,就可以截图,win10和win11可用

快捷键shift wins可以调出来windows自带的截图工具。 测试了一下win10和win11都可以用。 可以截图的方式有: 1,全屏截图, 2,窗口截图, 3,任意截图, 4,画矩形截图 以下内容来自…

【已解决】您所使用的密钥ak有问题,不支持jsapi服务,可以访问该网址了解如何获取有效密钥。

您所使用的密钥ak有问题,不支持jsapi服务,可以访问该网址了解如何获取有效密钥。详情查看:http://lbsyun.baidu.com/apiconsole/key#。 问题 百度密钥过期 思路 注册成为开发者 如果还没注册百度地图api账号的,点击以后就进入…

如果你想了解远程工作,这篇文章不容错过

大家好,好久不见,我好久都没写原创文章了。 最近周边的越来越多朋友来找我了解远程工作相关的问题,正好这个月也是我远程工作一年半了,所以就写篇文章聊聊关于这块的话题吧。 语言问题 首先远程工作基本分两种团队,一种…

【记录】Truenas scale|Truenas 的 SSH 服务连不上 VScode,终端能连上

一般 Truenas连不上 就只有两种情况: 第一种:用户没对应用户目录。需要去用户管理里面对每个用户设置目录。 第二种情况,服务有个选项没勾选。这时会发现能输入密码但是一点反应都没有,打开details会看到报错channel 3: open fai…

SkyWalking安装部署

一、概念 1、什么是 APM 系统? APM(Application Performance Management)即应用性能管理系统,是对企业系统即时监控以实现对应用程序性能管理和故障管理的系统化的解决方案。应用性能管理,主要指对企业的关键业务应用…

NoSQL之redis持久化(RDB、AOF)

目录 一、Redis高可用 二、Redis持久化 1、持久化的功能 2、Redis的两种持久化 三、RDB 持久化 1、触发条件 1.1 手动触发 1.2 自动触发 1.3 其它自动触发机制 2、执行流程 3、启动时加载RED文件(恢复) 四、Redis的AOF持久化 1、开启AOF 2、执行流程 2.1 命令追加…

每日一博 - 图解进程(Process)和线程(Thread)区别联系

文章目录 概述图解小结 概述 进程(Process)和线程(Thread)是操作系统中管理和执行任务的两个基本概念,它们之间有以下主要区别: 独立性: 进程是独立的执行单位。每个进程有自己的独立地址空间、…

Tomcat 的部署和优化

目录 1、什么是Tomcat 1.1、静态页面的选择 2、Tomcat是怎么运行的 3、安装jdk & 部署jdk环境 & Tomcat 安装 1、安装jdk 2、配置jdk环境变量 3、tomcat安装 4、Tomcat启动 5.优化tomcat启动速度 6.Tomcat的主要命令 7.Tomcat 配置虚拟主机 8.Tomca…

Django:二、模板、静态文件及请求相应

一、HTML 在app01中创建文件夹“templates”,在templates中创建HTML文件。 二、静态文件 创建静态文件夹,并把相关包导入 在HTML中引入Jquery等包,需要完成几步: 三、模板语法 1、字符串和列表 2、字典 3、if语句

MMrotate_dev 1.x训练自己的数据集

因为MMRotate dev 1.x 新增了PSC角度编码器以及RTMDet目标检测算法,而之前从官网下载的MMRotate是main分支,没有新增的东西,所以重新搞了一下,以此记录。 环境配置 1.创建虚拟环境 注意:如果之前安装了MMRotate的其…

使用 Webpack 从 0 到 1 构建 Vue3 项目 + ts

使用 Webpack 从 0 到 1 构建 Vue3 项目 1.初始化项目结构2.安装 webpack,补充智能提示3.初步编写 webpack.config.js3.1设置入口文件及出口文件3.2 指定 html 模板位置 4.配置 运行/打包 命令,首次打包项目5.添加 Vue 及相关配置5.1安装并引入 vue5.2 补…