Подтвердить что ты не робот

Sbt 0.13.0 Неисправность JLine обнаружена

У меня есть проблема с запуском приложения 2.2.0 для игры на моем mac с горным львом и java 7:

[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 в этом каталоге. Поэтому я попробовал пару вещей:

  • удалил все связанные с sbt вещи из моего домашнего каталога и попытался использовать sbt script из https://github.com/paulp/sbt-extras/blob/master/sbt → той же проблемы
  • удалил все банки из моего репо-сервера плюща и начал снова sbt → та же проблема
  • скачать sbt launcher напрямую (версия 0.13.0) → та же проблема
  • попробовал с java 6 → той же проблемой
  • пытался отладить sbt, чтобы выяснить, что неправильно, но все, что я узнал, это то, что jline не признает, что он должен использовать UnixTerminal (который я получил, установив systemProperties), но затем снова → ту же ошибку

Это как-то связано с какой-то странной связью, о которой я думаю, потому что версия класса для терминала, которая должна использоваться, кажется старой. По крайней мере, это то, о чем жалуется jvm.

Я попробовал это на виртуальной коробке с ubuntu, которая работала нормально, поэтому я думаю, что моя система беспорядок или я сделал что-то совершенно неправильное.

У кого-нибудь есть идеи?

4b9b3361

Ответ 1

Если вы запускаете JVM с включенной расширенной загрузкой классов (-verbose:class), это может помочь устранить неполадку, из которой происходят классы, вызывающие нарушение JLine. Возможно, у вас есть JLine jar в одном из ваших каталогов расширений JVM, возможно, ~/Library/Java/Extensions или /System/Library/Java/Extensions.

Ответ 2

У меня была такая же проблема. Мой проект использует SBT 0.13

Оказалось, что мне нужно обновить SBT Launcher до версии 0.13.

Ответ 3

Эта ошибка также может произойти, если вы используете пусковую установку SBT от 0.12 в проекте SBT 0.13, как это предлагается в сообщении об ошибке.

Ответ 4

Попробуйте обновить версию SBT до 0,13. Просто загрузите файл tar sbt и измените путь в файле .bash_profile. Попробуйте снова запустить команду sbt в каталоге проекта. Это должно решить проблему.