Mac Monterey通过jbang安装Quarkus报MalformedInputException错误
Quarkus安装报错问题排查
问题场景
参照Quarkus官方入门指南体验Quarkus时,在Intel芯片、运行Monterey系统的Mac设备上执行如下安装命令:
curl -Ls https://sh.jbang.dev | bash -s - app install --fresh --force quarkus@quarkusio
执行过程中抛出报错:
[jbang] [ERROR] java.nio.charset.MalformedInputException: Input length = 1
本地Java环境信息:
java --version java 11.0.6 2020-01-14 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.6+8-LTS) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.6+8-LTS, mixed mode) whereis java java: /usr/bin/java which java /Library/Java/JavaVirtualMachines/jdk-11.0.6.jdk/Contents/Home/bin/java
故障原因
该报错是字符集解析异常导致:当前使用的JDK 11.0.6版本存在已知的Mac系统字符集识别缺陷,会默认使用非UTF-8编码读取文件,和JBang默认使用UTF-8读取配置、缓存文件的逻辑冲突,触发MalformedInputException。
解决方法
按优先级依次尝试以下方案即可修复:
- 升级JDK小版本:将本地JDK 11升级到11.0.12及以上的更新版本,旧版本的字符集bug在后续更新中已被修复,升级完成后重新执行安装命令即可正常运行
- 临时指定JVM默认编码:如果暂时不需要升级JDK,可在执行安装命令前,先在终端执行编码配置命令:
配置生效后重新运行Quarkus安装命令,即可绕过编码识别问题export JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF-8" - 清理损坏的缓存:如果上述操作后仍报错,先执行
jbang cache clear命令清除本地已损坏的JBang缓存文件,再重新走安装流程
内容的提问来源于stack exchange,提问作者user1657861
相关产品推荐
相关产品推荐

