groovysh启动报错:NoSuchMethodError org.fusesource.jansi.AnsiConsole.wrapOutputStream
groovysh在Windows Git Bash中启动报错:NoSuchMethodError: AnsiConsole.wrapOutputStream
在Windows系统的Git Bash环境下,通过SDKMAN(5.18.2)安装Java和Groovy后,执行groovysh时触发致命错误:
$ groovysh FATAL: java.lang.NoSuchMethodError: 'java.io.OutputStream org.fusesource.jansi.AnsiConsole.wrapOutputStream(java.io.OutputStream)'
已测试过Groovy官方兼容的多组版本组合,问题均未解决:
- Java版本:8、11、17(Amazon Corretto)
- Groovy版本:3.0.20、4.0.1、4.0.17
可行的解决方法
禁用ANSI终端支持
通过环境变量或启动参数关闭Groovy的ANSI输出处理,绕开Jansi方法调用:# 方法1:设置环境变量 export GROOVY_TERMINAL_NO_ANSI=true groovysh # 方法2:启动时添加系统属性 groovysh -Dgroovy.terminal.noansi=true强制指定兼容的Jansi版本
该错误源于Jansi版本不匹配,手动指定兼容的Jansi jar包到类路径(推荐1.18版本):export CLASSPATH=/path/to/jansi-1.18.jar:$CLASSPATH groovysh可下载对应版本的Jansi jar包,替换路径为实际存放位置。
切换到Windows原生终端
改用Windows命令提示符(cmd)或PowerShell执行groovysh,原生环境下通常不会出现此终端兼容问题。
内容的提问来源于stack exchange,提问作者kansasSamurai
相关产品推荐
相关产品推荐

