java.io.InvalidClassException: org.antlr.v4.runtime.atn.ATN; Could not deserialize ATN with UUID……

0.错误堆栈

Caused by: java.lang.UnsupportedOperationException: java.io.InvalidClassException: org.antlr.v4.runtime.atn.ATN; Could not deserialize ATN with UUID 59627784-3be5-417a-b9eb-8131a7286089 (expected aadb8d7e-aeef-4415-ad2b-8204d6cf042e or a legacy UUID).
at org.antlr.v4.runtime.atn.ATNDeserializer.deserialize(ATNDeserializer.java:153)
at com.mizuho.spark.parser.SqlBaseLexer.(SqlBaseLexer.java:1183)
… 20 more
Caused by: java.io.InvalidClassException: org.antlr.v4.runtime.atn.ATN; Could not deserialize ATN with UUID 59627784-3be5-417a-b9eb-8131a7286089 (expected aadb8d7e-aeef-4415-ad2b-8204d6cf042e or a legacy UUID).
… 22 more

1.解决

看报错说antlr.v4.runtime这个类无效,第一反应是版本问题。

查了查发现说:报错的具体原因是antlr在运行的时候会校验通过.g4文件生成的编译器和执行时的antlr版本是否一致

我在idea中用antlr插件对XX.g4文件编译,但idea的antlr插件版本1.16版本支持Antlr 4.9.1,但我maven依赖的是Antlr4.5.3
在这里插入图片描述

所以解决也很简单

  • 改maven依赖的antlr的版本和idea插件的版本一致
  • 也可以使用命令行编译.g4文件生成class。确定maven版本后,去github找对应antlr jar包手动命令行编译。

java -jar antlr-4.9.1-complelte.jar XXX.g4

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值