2014-01-06 1 views
0

Я загрузил проект scalafx-ensemble. Когда я бегу sbt в папке проекта я столкнулся следующее сообщение об ошибке:Различные ошибки во время 'sbt' и 'sbt run' в scalafx-ансамбле

[info] Set current project to scalafxEnsemble (in build file:/C:/dev/sample/scalafx-ensemble-master/) 
[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.JLine$.sbt$JLine$$terminal(LineReader.scala:87) 
    at sbt.JLine$.withTerminal(LineReader.scala:91) 
    at sbt.JLine$.usingTerminal(LineReader.scala:97) 
    at sbt.JLine$.createReader(LineReader.scala:103) 
    at sbt.FullReader.<init>(LineReader.scala:135) 
    at sbt.BasicCommands$$anonfun$shell$1.apply(BasicCommands.scala:149) 
    ... 
    java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected 
    at sbt.JLine$$anonfun$usingTerminal$1.apply(LineReader.scala:98) 
    at sbt.JLine$$anonfun$usingTerminal$1.apply(LineReader.scala:97) 
    at sbt.JLine$.withTerminal(LineReader.scala:92) 
    at sbt.JLine$.usingTerminal(LineReader.scala:97) 
    at sbt.JLine$.createReader(LineReader.scala:103) 
    at sbt.FullReader.<init>(LineReader.scala:135) 
    at sbt.BasicCommands$$anonfun$shell$1.apply(BasicCommands.scala:149) 
    at sbt.BasicCommands$$anonfun$shell$1.apply(BasicCommands.scala:146) 
    at sbt.Command$$anonfun$command$1$$anonfun$apply$1.apply(Command.scala:31) 
    at sbt.Command$$anonfun$command$1$$anonfun$apply$1.apply(Command.scala:31) 
    at sbt.Command$.process(Command.scala:95) 
    at sbt.MainLoop$$anonfun$1$$anonfun$apply$1.apply(MainLoop.scala:100) 
    ... 
[error] java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected 
[error] Use 'last' for the full log. 

Если я бегу sbt run я получаю следующее:

at scala.tools.nsc.typechecker.Typers$Typer.doTypedApply(Typers.scala:3193) 
    at scala.tools.nsc.typechecker.Typers$Typer.handleOverloaded$1(Typers.scala:3190) 
    at scala.tools.nsc.typechecker.Typers$Typer.doTypedApply(Typers.scala:3193) 
    at scala.tools.nsc.typechecker.Typers$Typer.handleOverloaded$1(Typers.scala:3190) 
[error] (compile:compile) java.lang.StackOverflowError 
[error] Total time: 9 s, completed Jan 6, 2014 4:47:49 PM 

Что я делаю неправильно?

ответ

1

Это, вероятно, проблема с устаревшей пусковой установкой SBT. Убедитесь, что ваш SBT равен v.0.13 или новее.

+0

Спасибо. Я решил эту проблему. Это был неправильный путь. В моей системе JAVA_HOME - это «C: \ Program Files \ Java \ jre7», как стандартный путь для установщика окон Java. В пути 'build.sbt' к jfxrt.jar находится '% JAVA_HOME% + jre/lib/jfxrt.jar', и это неправильно в моей среде. – falcon

+0

Извините. Ты был прав. SBT это была одна из проблем. – falcon

0

Я установил путь к jfxrt.jar в build.sbt от

System.getenv("JAVA_HOME") + "jre/lib/jfxrt.jar" 

в

System.getenv("JAVA_HOME") + "/lib/jfxrt.jar" 

, который является правильным для моей системы. С изменением sbt run отлично работает.

+0

Как насчет ошибки 'IncompatibleClassChangeError: Найден класс jline.Terminal, но интерфейс ожидался'? Это тоже ушло ?! [Похоже, проект использует 0.13.1] (https://github.com/scalafx/scalafx-ensemble/blob/master/project/build.properties). –

+0

№ только «sbt run» отлично работает. Если я пытаюсь запустить 'sbt', я все равно получаю ошибки. – falcon

+0

Извините. Я был немного смущен версиями SBT. Я удалил старый SBT 1.12.1 и установил последнюю версию 1.13.1, которая определена в сборке. Наконец все работает нормально. Благодаря! – falcon

 Смежные вопросы

  • Нет связанных вопросов^_^