Spring Boot 3 GraalVM Native Build 尝鲜报错 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lbllol365
V2EX    Java

Spring Boot 3 GraalVM Native Build 尝鲜报错

  •  
  •   lbllol365 2022-12-02 16:29:28 +08:00 4335 次点击
    这是一个创建于 1069 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请教各位大佬,我在 IDEA 执行 native:build 会报 GraalVM native-image 找不到的错误,但是我在 IDEA 的终端里 gu install native-image 和 echo $GRAALVM_HOME 都是存在的

    https://imgur.com/a/lZo54Aj

    20 条回复    2022-12-04 14:28:30 +08:00
    bootvue
        1
    bootvue  
       2022-12-02 16:51:59 +08:00
    windows 吗 仔细看文档 native 编译要安装 visual studio c/c++编译器 然后在 vs 的 cmd 环境下打包一般没问题
    SuperManNoPain
        2
    SuperManNoPain  
       2022-12-02 16:53:05 +08:00
    wsl 环境无问题
    bootvue
        3
    bootvue  
       2022-12-02 16:53:45 +08:00
    lbllol365
        4
    lbllol365  
    OP
       2022-12-02 16:54:27 +08:00
    @bootvue Mac 的
    lbllol365
        5
    lbllol365  
    OP
       2022-12-02 16:54:56 +08:00
    @SuperManNoPain 尴尬了
    bootvue
        6
    bootvue  
       2022-12-02 17:04:22 +08:00   1
    把 idea 里各种设置捣鼓捣鼓 当前项目的 jdk 切成 graalvm maven/gradle 的 jdk 也切成 graalvm 试试
    mgzu
        7
    mgzu  
       2022-12-02 17:05:35 +08:00   1
    可以直接命令行:mvn -Pnative native:compile
    yazinnnn
        8
    yazinnnn  
       2022-12-02 17:52:07 +08:00   1
    1. 环境变量里有没有 native-image?(按道理说有 gu 就有 native-image,这两个文件是在一个目录的)
    2. sudo xattr -r -d com.apple.quarantine /path/to/graalvm
    3. 把 graalvm home 改成 /path/to/graal/Contents/Home
    4. 把 java home 也改成上面那样


    举个例子,我的 GRAALVM_HOME 和 JAVA_HOME 都是
    ~/.jdks/bellsoft-liberica-vm-openjdk17-22.2.0/Contents/Home

    native-image --version
    GraalVM 22.2.0 Java 17 CE (Java Version 17.0.4.1+1-LTS)
    ruoook
        9
    ruoook  
       2022-12-02 18:11:30 +08:00
    借楼,国内环境运行 mvn -Pnative spring-boot:build-image, 卡在 Downloading from syft_0.62.1_linux_amd64.tar.gz
    ,有啥办法吗?
    mgzu
        10
    mgzu  
       2022-12-02 18:27:58 +08:00
    @ruoook 命令行配置下代理试试
    lbllol365
        11
    lbllol365  
    OP
       2022-12-02 19:00:26 +08:00
    @yazinnnn @mgzu 感谢两位大佬,我命令行执行 mvn -Pnative native:compile ,然后报 JAVA_HOME 配置错误,我环境变量用的是那种后面带"-v 17"的配置,改成 /path/to/graal/Contents/Home ,命令就能正常运行了,但是 IDEA 还是不行,这个我再研究研究
    ruoook
        12
    ruoook  
       2022-12-02 19:52:00 +08:00
    @mgzu 构建了 10 分钟,终于好了
    zhaogaz
        13
    zhaogaz  
       2022-12-02 21:32:03 +08:00
    看了眼图,这个问题一般是 IDE 的配置和命令行配置不一样导致的;你如果自己跑 mvn 命令应该能过,IDE 配起来就麻烦了。。。

    修改思路就是让 IDE 知道所有工具正确位置就行了。


    @ruoook 你这个问题一般是网络问题,搞个国内的 maven repository 就行了,配置到 setting 里面,一般都有镜像;配代理也行
    ningmengmao
        14
    ningmengmao  
       2022-12-02 21:51:01 +08:00
    native image 着实有点坑, 要不断测试, 才能完善 reflect, resource, jni 那些配置. 测不全那就等着运行报错
    chihiro2014
        15
    chihiro2014  
       2022-12-02 22:15:39 +08:00
    还需要安装 vc++之类的库,光改成 graalvm 的 jdk 还不行,如果是 windows 。当时踩坑了两三天。
    PS:网上那群公众号基本都是 mac 或者没有用 windows 安装,导致只吹性能,不讲实际。真的傻逼
    yazinnnn
        16
    yazinnnn  
       2022-12-02 22:41:57 +08:00 via Android
    首先,graalvm 官方就对 win 版不咋重视,vs 只能装英文语言包这么重要的事没在文档里提,不是运气好的话根本不知道为啥 Windows 会构建失败,只能干瞪眼
    holulu
        17
    holulu  
       2022-12-03 10:10:20 +08:00
    扔容器里编
    yizmaoaa
        18
    yizmaoaa  
       2022-12-03 10:35:25 +08:00
    = = 这个报错,单纯的就是你的环境变量的 jdk 不是 graalvm ,你 java version 看看就行了
    zed1018
        19
    zed1018  
       2022-12-03 20:05:54 +08:00
    一通操作还是没有搞懂怎么在不引入 spring native 的 @Typehint 的情况下,在 build.gradle.kts graalvmnative 里补全缺少的 class
    westinyang1
        20
    westinyang1  
       2022-12-04 14:28:30 +08:00   1
    JAVA_HOME GRAALVM_HOME 目前是都需要配置,我建议来回切换 JAVA_HOME ,GRAALVM_HOME 指向 JAVA_HOME ,win mac linux 我都尝试过,也做了些总结,都汇集到了一个开源项目里:gitee.com/westinyang/java-graalvm-start ,使用 Java 开发 CLI 、Desktop(JavaFX)、Web(SpringBoot)项目,并使用 native-image 技术把 Java 代码静态编译为独立可执行文件,希望能帮助到你
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1250 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 17:23 PVG 01:23 LAX 09:23 JFK 12:23
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86