首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测到sbt 0.13.0 JLine不兼容

检测到sbt 0.13.0 JLine不兼容
EN

Stack Overflow用户
提问于 2013-10-19 14:08:15
回答 4查看 6.7K关注 0票数 17

在我的mac上启动一个玩2.2.0的应用程序时,我遇到了一个问题,那就是用大山狮和java 7:

代码语言:javascript
复制
[ERROR] Terminal initialization failed; falling back to unsupported
java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
at jline.TerminalFactory.create(TerminalFactory.java:101)
at jline.TerminalFactory.get(TerminalFactory.java:159)
at sbt.ConsoleLogger$.ansiSupported(ConsoleLogger.scala:85)
at sbt.ConsoleLogger$.<init>(ConsoleLogger.scala:79)
at sbt.ConsoleLogger$.<clinit>(ConsoleLogger.scala)
at sbt.GlobalLogging$.initial(GlobalLogging.scala:40)
at sbt.StandardMain$.initialGlobalLogging(Main.scala:54)
at sbt.StandardMain$.initialState(Main.scala:60)
at sbt.xMain.run(Main.scala:26)
at xsbt.boot.Launch$$anonfun$run$1.apply(Launch.scala:57)
at xsbt.boot.Launch$.withContextLoader(Launch.scala:77)
at xsbt.boot.Launch$.run(Launch.scala:57)
at xsbt.boot.Launch$$anonfun$explicit$1.apply(Launch.scala:45)
at xsbt.boot.Launch$.launch(Launch.scala:65)
at xsbt.boot.Launch$.apply(Launch.scala:16)
at xsbt.boot.Boot$.runImpl(Boot.scala:32)
at xsbt.boot.Boot$.main(Boot.scala:21)
at xsbt.boot.Boot.main(Boot.scala)

java.lang.IncompatibleClassChangeError: JLine incompatibility detected.  Check that the sbt launcher is version 0.13.x or later.
at sbt.ConsoleLogger$.ansiSupported(ConsoleLogger.scala:96)
at sbt.ConsoleLogger$.<init>(ConsoleLogger.scala:79)
at sbt.ConsoleLogger$.<clinit>(ConsoleLogger.scala)
at sbt.GlobalLogging$.initial(GlobalLogging.scala:40)
at sbt.StandardMain$.initialGlobalLogging(Main.scala:54)
at sbt.StandardMain$.initialState(Main.scala:60)
at sbt.xMain.run(Main.scala:26)
at xsbt.boot.Launch$$anonfun$run$1.apply(Launch.scala:57)
at xsbt.boot.Launch$.withContextLoader(Launch.scala:77)
at xsbt.boot.Launch$.run(Launch.scala:57)
at xsbt.boot.Launch$$anonfun$explicit$1.apply(Launch.scala:45)
at xsbt.boot.Launch$.launch(Launch.scala:65)
at xsbt.boot.Launch$.apply(Launch.scala:16)
at xsbt.boot.Boot$.runImpl(Boot.scala:32)
at xsbt.boot.Boot$.main(Boot.scala:21)
at xsbt.boot.Boot.main(Boot.scala)

Error during sbt execution: java.lang.IncompatibleClassChangeError: JLine incompatibility     detected.  Check that the sbt launcher is version 0.13.x or later.

它并没有真正链接到play,因为当我在那个目录中直接启动sbt时,我得到了相同的错误。所以我试了几件事:

  • 从我的家庭dir中删除了所有与sbt相关的内容,并尝试使用https://github.com/paulp/sbt-extras/blob/master/sbt ->中的sbt脚本。
  • 从我的常春藤上删除所有的罐子,重新启动sbt ->,同样的问题。
  • 直接下载sbt启动程序(版本0.13.0) ->相同的问题
  • 用java 6 ->试过同样的问题。
  • 尝试调试sbt以找出出了什么问题,但我发现jline不认识到它应该使用UnixTerminal (我通过设置systemProperties获得了它),但是再次->相同的错误

我认为这与某种奇怪的链接有关,因为应该使用的终端的类版本似乎已经过时了。至少这正是jvm所抱怨的。

我在一个带有ubuntu的虚拟盒子上试了一下,它工作得很好,所以我觉得我的系统很乱,或者我做了一些完全错误的事情。

有人有什么想法吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-10-19 15:07:20

如果您启动JVM时启用了详细的类加载(-verbose:class),这可能有助于排除违规的JLine类来自何处。也许您的JVM扩展目录中有一个JLine jar,可能是~/Library/Java/Extensions/System/Library/Java/Extensions

票数 8
EN

Stack Overflow用户

发布于 2013-11-06 14:34:59

我也有同样的问题。我的项目是使用SBT 0.13

结果,我需要升级SBT启动程序到0.13版本以及。

票数 16
EN

Stack Overflow用户

发布于 2013-11-26 21:38:07

如果在SBT0.13项目中使用SBT 0.12中的SBT启动程序,也会发生此错误,正如错误消息中所建议的那样。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19466950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档