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

Quarkus开发模式启动抛出EXCEPTION_ACCESS_VIOLATION错误求助

Quarkus dev模式启动JVM崩溃排查方案

问题概述

执行quarkus dev时JVM抛出EXCEPTION_ACCESS_VIOLATION崩溃,栈信息显示错误发生在jansi.dll调用过程中,根源是Jansi库初始化Quarkus控制台终端时出现空指针访问。当前环境:Quarkus 3.0.3.Final、Gradle、Java 17(Oracle JDK 17.0.6+9)、Windows 10。

核心错误日志片段:

# A fatal error has been detected by the Java Runtime Environment:
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd05962778, pid=20072, tid=13304
...
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [jvm.dll+0x3d2778]
C  [jansi.dll+0x104e]

Java frames:
j  org.fusesource.jansi.internal.CLibrary.init()V+0
j  org.fusesource.jansi.internal.CLibrary.<clinit>()V+12
...
j  io.quarkus.deployment.console.ConsoleHelper.installConsole(...)V+95

排查方向

  • 禁用Quarkus控制台ANSI支持
    在启动命令中添加参数:-Dquarkus.console.disable=true,或在application.properties中配置:quarkus.console.disable=true,跳过终端ANSI初始化流程。

  • 强制更新Jansi依赖版本
    在Gradle构建脚本中添加版本约束,使用更稳定的Jansi版本:

    dependencies {
        constraints {
            implementation 'org.fusesource.jansi:jansi:2.4.0'
        }
    }
    

    执行gradle clean build --refresh-dependencies刷新依赖缓存。

  • 切换Java运行时
    替换Oracle JDK为Adoptium OpenJDK 17.0.7或更高小版本,避免Oracle JDK特定的native库兼容问题。

  • 以非交互式模式启动
    执行quarkus dev --no-interactive,跳过交互式终端的初始化步骤,验证是否能正常启动应用。

  • 清理并重建项目
    删除项目下的build目录,同时清理Gradle缓存中Jansi相关文件(路径:C:\Users\XY\.gradle\caches\modules-2\files-2.1\org.fusesource.jansi),然后重新执行quarkus dev。

  • 更换终端环境
    使用Windows Terminal替代默认的命令提示符或PowerShell启动quarkus dev,避免旧终端的兼容性问题;同时确保Windows系统更新到最新版本(当前为19041,建议更新至22H2或更高)。

内容的提问来源于stack exchange,提问作者Ayume

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 07:07:09