我在我的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.
当我在该目录中直接启动sbt时遇到相同的错误,它并没有真正与游戏相关联。 所以我尝试了几件事:
我认为这与某些奇怪的链接有关,因为应该使用的终端的类版本似乎很旧。至少这是jvm抱怨的。
我在ubuntu的虚拟盒子上尝试过它,工作正常,所以我认为我的系统很乱或者我做错了。
有人有什么想法吗?
答案 0 :(得分:16)
我有同样的问题。我的项目是使用SBT 0.13
原来我需要将SBT Launcher升级到0.13版本。
答案 1 :(得分:8)
如果启动JVM并启用详细类加载(-verbose:class
),则可能有助于解决有问题的JLine类的来源。也许你的JVM扩展目录中有一个JLine jar,可能是~/Library/Java/Extensions
或/System/Library/Java/Extensions
。
答案 2 :(得分:1)
如果您在SBT 0.13项目中使用0.12的SBT启动器,也会出现此错误,如错误消息中所示。
答案 3 :(得分:1)
尝试将SBT版本更新为0.13。只需下载sbt tar文件并更改.bash_profile文件中的路径即可。再次尝试在项目目录中运行sbt命令。这应该可以解决问题。