首页 > 其他分享 >02-21 记SpringBoot3 打包成exe的过程以及一些问题

02-21 记SpringBoot3 打包成exe的过程以及一些问题

时间:2024-02-21 16:22:04浏览次数:62  
标签:02 bin exe target args pom graalvm 21

先说说基本流程:(Windows环境,springboot v3.2.1)

1.首先maven pom.xml中加入如下代码

    <build>
        <plugins>
            <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>

2.然后下载安装graalvm ,(以下链接是我使用的版本,也可以直接搜索官网下载最新版

https://download.oracle.com/graalvm/21/latest/graalvm-jdk-21_windows-x64_bin.zip

下载后解压,选择一个纯英文路径,将解压后的文件夹放进去

例如: D:\Program Files\graalvm-jdk-21_windows-x64_bin

3.由于windows命令行会有命令长度限制,需要使用一下vs的   x64 Native Tools Command Prompt for VS 2022(64位环境)

安装visual studio 2022 community 

https://c2rsetup.officeapps.live.com/c2r/downloadVS.aspx?sku=community&channel=Release&version=VS2022&source=VSLandingPage&cid=2030:4addb8b6ee0e420092f74a49d3e657d3

以上链接是vs2022下载器下载地址,安装时注意勾选以下选项

同样需要额外注意语言包选项卡 去掉 “中文”勾选项,如果勾选此项可能会出现

Error: Native-image building on Windows currently only supports target architecture: AMD64 (?? unsupported)

或者类似的问题

 

 之后直接安装结束。

注*

/*看到有些其他教程会说需要勾选Windows10 SDK

我没有勾选但是成功了*/

至此Windows下的环境安装设置结束

4.开始打包过程:

打开 x64 Native Tools Command Prompt for VS 2022 ;

*由于按照此流程并没有配置环境变量,所以需要执行如下命令

set JAVA_HOME=X:\your_path_to\graalvm-jdk-21_windows-x64_bin\graalvm-jdk-21.0.2+13.1  #到graalvm的bin目录同级

之后切换目录到需要打包项目的pom.xml 文件所在目录

cd X:/your/path/to/pom

最后一步,执行

mvn -Pnative native:compile

正常情况下等着就好,最后在target目录下会有一个崭新的 exe文件

 

 

但是吧,要是一切正常就不会有这个文章了

首先,这是一个朋友执行时遇到的问题,注意画圈部分

 

 这个问题就是目前所在的目录中找不到pom.xml,如果你也遇到了那就是没好好按照上边流程执行,执行

mvn -Pnative native:compile 的时候,需要切换目录到pom所在目录

其次,

 @target........*.args    returned non-zero result

这个问题,这是因为  @target........*.args 这个args文件中,文件目录层级分割符号使用的是 \\,需要把\\ 替换为 / 然后保存,直接修改项目的 target/tmp/***.args 文件,批量替换"\\"为"/"之后保存

然后直接复制上图中我框选的报红部分的 Execution of 之后 至 non-zero 之前的内容,然后在命令行粘贴执行即可

X:\your\path\to\graalvm\bin\native-image.cmd @target\tmp\native***.args

等待执行结束即可

标签:02,bin,exe,target,args,pom,graalvm,21
From: https://www.cnblogs.com/ilswwnlm/p/18025544

相关文章

  • USACO 2023 DEC bronze
    CandyCaneFeast第一题签到题,依题意模拟即可。注意细节,细节决定成败。CowntactTracing2贪心。读题奶牛传染,每个奶牛每晚传染左边和右边的奶牛。给定一个传染情况,求最开始最少有几个奶牛。我们记k为造成当前传染情况的传染天数。可以知道,传染的天数越多,被传染的牛就越......
  • 2024.2.21 LGJ Round
    A你在平面上有\(n\)个点,你每次可以从一个点跳到其右下或左上任意的点,|对每个点\(i\),求所有点到\(i\)至少跳多少次的和。点的坐标值域为\(M=2500\)。\(n\le2.5e5\).我们先考虑某个点,到所有点跳多少次。首先右下,左上都是跳一次即可。我们先考虑右上的点怎么办。我们一定......
  • 2024年2月中国数据库排行榜:PolarDB夺魁首登顶,TiDB攀升回探花
    银装素裹覆大地,春意初醒待来临。2024年2月墨天轮中国数据库流行度榜单出炉,表现最亮眼的无疑是PolarDB,其自23年7月以来一路高歌猛进,此次更是一举夺魁,彰显了云原生数据库的蓬勃发展态势,OceanBase、TiDB紧接拿下榜眼探花。榜单前十中,开源与商业平分秋色、各家数据库乘云直上,你追我赶......
  • 2024牛客寒假算法基础集训营4
    2024牛客寒假算法基础集训营4比赛地址A.柠檬可乐思路:简单的模拟,按照题目描述判断大小即可Code#include<bits/stdc++.h>usingnamespacestd;#defineintlonglong#defineall(x)x.begin()+1,x.end()voidsolve(){ inta,b,k; cin>>a>>b>>k; if(a>=k*b)cout<<&qu......
  • 2024年十大磁力搜索引擎排名下载教程-JAVA
    磁力技术相对比较顶尖的几大磁力厂商推荐使用磁力导航  www.okeyl.com随着互联网的发展,搜索引擎已经成为人们日常生活中必不可少的工具之一。每当我们想查找信息时,我们都会去使用搜索引擎。然而,在众多的搜索引擎中,哪些才是真正有用的呢?下面我们就来探讨一下搜索引擎前十排名。......
  • [WC/CTS2024] 水镜
    [WC/CTS2024]水镜不知道大家还记不记得这样一件事情:当我们要证明一个数列\(\{a_n\}\)单调递增时,只需证\(a_i<a_{i+1}\)。这是我场上的核心思路:如果要说明二元组\((u,v)\)合法,只需使得其中每相邻两项都递增。注意到这题的\(L\)是我们自己定的,所以这里就有一个思路:......
  • 刷题记录_2024寒假2/19~2/21
    P4287[SHOI2011]双倍回文考虑马拉车,但是我不会马拉车怎么办,考虑PAM我们在记录一般的fail之外再记录一个trans指针指向小于等于当前节点长度一半的最长回文后缀然后枚举每个节点#include<bits/stdc++.h>usingnamespacestd;chars[2000001];intlen[2000001],trans[2000......
  • 【2024-02-08】连岳摘抄
    23:59保只要你心中有爱,坚定不移的爱,全心全意的爱,你就能够克服很多乱七八糟的人生难题。                                                 ——罗伯特麦卡蒙当父母老......
  • 【2024-02-07】连岳摘抄
    23:59年意其实不在任何其他地方,它原本就在你的心里,也在所有人的心里。年意不过是一种生活的情感、期望和生机。而年呢?就像一盏红红的灯笼,一年一度把它迷人地照亮。                                   ......
  • 中国医疗健康行业2023年关键词盘点及2024年趋势展望
    经历了爆发式、跨越式发展之后,中国医药和医疗健康产业迈入新的发展阶段。2022年,受到资本市场整体下行、医药医疗行业增长放缓等因素影响,医疗健康领域的投融资回归理性,企业估值加速去泡沫化,市场开始自我梳理和审视。中国医药健康赛道创新趋势如何?敬请关注本文关于启明创投主管合伙......