You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

M1 Mac上Quarkus开发模式启动失败,报Unable to deserialize the dev mode context错误

M1 Mac上Quarkus开发模式启动失败,报Unable to deserialize the dev mode context错误

我之前在M1 MacBook上折腾Quarkus开发模式时,也碰到过完全一模一样的序列化错误,当时各种清缓存、换版本都试过,折腾了好久才找到几个针对Apple Silicon的有效解决方向,你可以逐一尝试:

1. 优先排查Java架构适配性

M1是ARM架构,虽然OpenJDK 17多数版本都宣称支持,但有些JDK可能仍以x86_64兼容模式运行,这会直接导致Quarkus开发模式的IPC通信出问题:

  • 打开终端执行java -version,看输出里有没有aarch64字样,如果显示的是x86_64,说明你装的是x86版本的JDK,必须换成ARM原生版(比如Azul Zulu的ARM版、Oracle JDK 17的ARM版)。
  • 用/usr/libexec/java_home -V查看已安装的JDK列表,确认ARM版本的路径,然后把它设为默认JDK:
    export JAVA_HOME=$(/usr/libexec/java_home -v 17 -a aarch64)
    
    把这个命令加到你的~/.zshrc或者~/.bash_profile里,避免每次重启终端都要重新设置。

2. 强制Quarkus拉取ARM原生依赖

有时候Maven会默认拉取x86架构的Quarkus相关依赖,即使你用的是ARM JDK。可以在pom.xml的<properties>标签里添加配置,强制指定架构:

<os.detected.arch>aarch64</os.detected.arch>
<quarkus.native.builder.image>quay.io/quarkus/ubi-quarkus-mandrel-builder-image:jdk-17</quarkus.native.builder.image>

然后执行mvn clean install -DskipTests重新构建依赖。

3. 关闭IntelliJ自动构建(如果用IDEA开发)

我当时用IntelliJ时,发现自动构建功能会和Quarkus开发模式产生冲突,导致序列化上下文损坏:

  • 打开IDEA的「Settings → Build, Execution, Deployment → Compiler」,取消勾选「Build project automatically」。
  • 之后不要用IDEA的内置运行按钮,直接在终端里执行mvn quarkus:dev启动项目。

4. 清理Quarkus本地开发缓存

除了清~/.m2,还要注意项目target目录下的Quarkus专属缓存,这个缓存损坏的概率很高:

rm -rf target/quarkus-dev-mode-cache

执行完再重新启动开发模式。

5. 排查终端环境变量干扰

有时候终端里的JAVA_TOOL_OPTIONS或MAVEN_OPTS会带有冲突参数,比如调试代理、临时目录权限问题等:

  • 执行env | grep JAVA和env | grep MAVEN,检查有没有奇怪的参数。
  • 可以临时清空这些变量再试:
    unset JAVA_TOOL_OPTIONS
    unset MAVEN_OPTS
    mvn quarkus:dev
    

我当时是换了ARM原生的Azul Zulu JDK,加上强制依赖架构的配置后解决的问题,你可以先从JDK架构这个点入手,毕竟M1上很多Java生态的问题根源都是架构不兼容。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 08:28:06