sbt 0.13.0检测到JLine不兼容

mat*_*ckx 17 sbt osx-lion

我有一个问题,在我的Mac上用山狮和java 7开始玩2.2.0应用程序:

[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.
Run Code Online (Sandbox Code Playgroud)

当我在该目录中直接启动sbt时,我得到了相同的错误,因此它并没有真正与游戏相关联.所以我尝试了几件事:

  • 从我的家庭目录中删除了所有与sbt相关的东西并试图使用https://github.com/paulp/sbt-extras/blob/master/sbt中的sbt脚本- >同样的问题
  • 从我的常春藤repo dir中删除所有罐子并再次开始sbt - >同样的问题
  • 直接下载了一个sbt启动器(版本0.13.0) - >同样的问题
  • 尝试用java 6 - >同样的问题
  • 试图调试sbt来弄清楚什么是错的,但我发现的全部是jline没有认识到它应该使用UnixTerminal(我通过设置systemProperties工作)然后再次 - >同样的错误

它与某种奇怪的链接有点关联我认为因为应该使用的终端的类版本似乎是旧的.至少这是jvm抱怨的.

我在ubuntu的虚拟盒子上试了一下,工作正常,所以我认为我的系统很乱或者我做错了.

有人有什么想法吗?

exp*_*ert 16

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

原来我需要将SBT Launcher升级到0.13版本.

  • 升级sbt,这对我来说安装了brew解决了这个问题:`brew update; brew升级sbt` (2认同)

Set*_*sue 8

如果启动具有详细类加载enabled(-verbose:class)的JVM ,则可能有助于解决有问题的JLine类的来源.也许你的JVM扩展目录中有一个JLine jar,可能~/Library/Java/Extensions还是/System/Library/Java/Extensions.