jline2报IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected错误的解决方法
jline2报IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected错误的解决方法
猪刚烈 发表于3年前
jline2报IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected错误的解决方法
  • 发表于 3年前
  • 阅读 23
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

这个文章有点标题党的嫌疑了:),但是我不会骗你,会给你一个解决方法,虽然不怎么好,但是至少可以解决你和我一样遇到的问题。


情况是这样的:使用jline2,在windows下工作正常,linux下(redhat)报出:java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected。尽管我已经attach了jline2的源码调试到问题的发生源头,但还是无济于事,个人推测是底层JNI的实现(如libjansi.so等)和当前运行的linux系统出现了一些兼容或运行时的错误,限于本人对JNI的了解和时间都有限,不打算在这个问题上再深入下去了,毕竟实现一个CLI只是我工作的很小一个部分。希望知道问题根源和解决方法的朋友留言给我。


好吧,说说我最后的处理方法:回退到jline1,问题就不存在了。

共有 人打赏支持
粉丝 22
博文 708
码字总数 110
作品 1
×
猪刚烈
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: