2017-03-26 5 views
3

Coursera Spark/bigdataコースを試して、consoleコマンドをsbtで使用しようとしたときに次のエラーが発生しました。スタックトレースの後、scala >プロンプトが表示されますが、入力するとテキストが表示されないため、コンソールが正しく動作しません。 "example"と "wikipedia"の両方の割り当てを試しました。同じこと。彼らはOKをコンパイルし、テストに合格します。それはsbtコンソールを使用できないということだけです。REPLが一部のプロジェクトでsbtのconsoleコマンドを使用していません

コンソールが他のプロジェクト、特に非常に似たビルドファイルを持つCoursera progfun2コースでうまく動作するので、これは奇妙です。ここで

C:\Users\Rhys\Documents\Java\SbtProjects\example>sbt 
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0 
[info] Loading global plugins from C:\Users\Rhys\.sbt\0.13\plugins 
[info] Loading project definition from C:\Users\Rhys\Documents\Java\SbtProjects\example\project 
[info] Updating {file:/C:/Users/Rhys/Documents/Java/SbtProjects/example/project/}example-build... 
[info] Resolving org.scala-sbt.ivy#ivy;2.3.0-sbt-c5d1b95fdcc1e1007740ffbecf4eb07[info] Resolving org.fusesource.jansi#jansi;1.4 ... 
[info] Done updating. 
[info] Compiling 7 Scala sources to C:\Users\Rhys\Documents\Java\SbtProjects\example\project\target\scala-2.10\sbt-0.13\classes... 
[info] Set current project to bigdata-example (in build file:/C:/Users/Rhys/Documents/Java/SbtProjects/example/) 
> console 
[info] Compiling 1 Scala source to C:\Users\Rhys\Documents\Java\SbtProjects\example\target\scala-2.11\classes... 
[info] Starting scala interpreter... 
[info] 
[ERROR] Terminal initialization failed; falling back to unsupported 
java.lang.NoClassDefFoundError: Could not initialize class scala.tools.fusesource_embedded.jansi.internal.Kernel32 
     at scala.tools.fusesource_embedded.jansi.internal.WindowsSupport.getConsoleMode(WindowsSupport.java:50) 
     at scala.tools.jline_embedded.WindowsTerminal.getConsoleMode(WindowsTerminal.java:204) 
     at scala.tools.jline_embedded.WindowsTerminal.init(WindowsTerminal.java:82) 
     at scala.tools.jline_embedded.TerminalFactory.create(TerminalFactory.java:101) 
     at scala.tools.jline_embedded.TerminalFactory.get(TerminalFactory.java:158) 
     at scala.tools.jline_embedded.console.ConsoleReader.<init>(ConsoleReader.java:229) 
     at scala.tools.jline_embedded.console.ConsoleReader.<init>(ConsoleReader.java:221) 
     at scala.tools.jline_embedded.console.ConsoleReader.<init>(ConsoleReader.java:209) 
     at scala.tools.nsc.interpreter.jline_embedded.JLineConsoleReader.<init>(JLineReader.scala:62) 
     at scala.tools.nsc.interpreter.jline_embedded.InteractiveReader.<init>(JLineReader.scala:34) 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
     at java.lang.reflect.Constructor.newInstance(Unknown Source) 
     at scala.tools.nsc.interpreter.ILoop$$anonfun$scala$tools$nsc$interpreter$ILoop$$instantiater$1$1.apply(ILoop.scala:858) 
     at scala.tools.nsc.interpreter.ILoop$$anonfun$scala$tools$nsc$interpreter$ILoop$$instantiater$1$1.apply(ILoop.scala:855) 
     at scala.tools.nsc.interpreter.ILoop.scala$tools$nsc$interpreter$ILoop$$mkReader$1(ILoop.scala:862) 
     at scala.tools.nsc.interpreter.ILoop$$anonfun$21$$anonfun$apply$9.apply(ILoop.scala:873) 
     at scala.tools.nsc.interpreter.ILoop$$anonfun$21$$anonfun$apply$9.apply(ILoop.scala:873) 
     at scala.util.Try$.apply(Try.scala:192) 
     at scala.tools.nsc.interpreter.ILoop$$anonfun$21.apply(ILoop.scala:873) 
     at scala.tools.nsc.interpreter.ILoop$$anonfun$21.apply(ILoop.scala:873) 
     at scala.collection.immutable.Stream$$anonfun$map$1.apply(Stream.scala:418) 
     at scala.collection.immutable.Stream$$anonfun$map$1.apply(Stream.scala:418) 
     at scala.collection.immutable.Stream$Cons.tail(Stream.scala:1233) 
     at scala.collection.immutable.Stream$Cons.tail(Stream.scala:1223) 
     at scala.collection.immutable.Stream.collect(Stream.scala:435) 
     at scala.tools.nsc.interpreter.ILoop.chooseReader(ILoop.scala:875) 
     at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1$$anonfun$apply$mcZ$sp$2.apply(ILoop.scala:914) 
     at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply$mcZ$sp(ILoop.scala:914) 
     at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:909) 
     at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:909) 
     at scala.reflect.internal.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:97) 
     at scala.tools.nsc.interpreter.ILoop.process(ILoop.scala:909) 
     at scala.tools.nsc.interpreter.ILoop.main(ILoop.scala:934) 
     at xsbt.ConsoleInterface.run(ConsoleInterface.scala:62) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
     at java.lang.reflect.Method.invoke(Unknown Source) 
     at sbt.compiler.AnalyzingCompiler.call(AnalyzingCompiler.scala:101) 
     at sbt.compiler.AnalyzingCompiler.console(AnalyzingCompiler.scala:76) 
     at sbt.Console.sbt$Console$$console0$1(Console.scala:22) 
     at sbt.Console$$anonfun$apply$2$$anonfun$apply$1.apply$mcV$sp(Console.scala:23) 
     at sbt.Console$$anonfun$apply$2$$anonfun$apply$1.apply(Console.scala:23) 
     at sbt.Console$$anonfun$apply$2$$anonfun$apply$1.apply(Console.scala:23) 
     at sbt.Logger$$anon$4.apply(Logger.scala:85) 
     at sbt.TrapExit$App.run(TrapExit.scala:248) 
     at java.lang.Thread.run(Unknown Source) 

Welcome to Scala 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_111). 
Type in expressions for evaluation. Or try :help. 

scala> 

は、それが任意の助けだ場合build.sbtだ:私は数年前にREPLを起動jansiでa similar problemに遭遇したよう

name := course.value + "-" + assignment.value 

scalaVersion := "2.11.8" 

scalacOptions ++= Seq("-deprecation") 

courseId := "e8VseYIYEeWxQQoymFg8zQ" 

resolvers += Resolver.sonatypeRepo("releases") 

// grading libraries 
libraryDependencies += "junit" % "junit" % "4.10" % "test" 
libraryDependencies ++= assignmentsMap.value.values.flatMap(_.dependencies).toSeq 

// include the common dir 
commonSourcePackages += "common" 

assignmentsMap := { 
    val depsSpark = Seq(
    "org.apache.spark" %% "spark-core" % "2.1.0" 
) 
    Map(
    "example" -> Assignment(
     packageName = "example", 
     key = "9W3VuiJREeaFaw43_UrNUw", 
     itemId = "I6L8m", 
     partId = "vsJoj", 
     maxScore = 10d, 
     dependencies = Seq(), 
     options = Map("Xmx"->"1540m", "grader-memory"->"2048")), 
    "wikipedia" -> Assignment(
     packageName = "wikipedia", 
     key = "EH8wby4kEeawURILfHIqjw", 
     itemId = "QcWcs", 
     partId = "5komc", 
     maxScore = 10d, 
     styleScoreRatio = 0.0, 
     dependencies = depsSpark, 
     options = Map("Xmx"->"1540m", "grader-memory"->"2048", "totalTimeout" -> "900", "grader-cpu" -> "2")), 
    "stackoverflow" -> Assignment(
     packageName = "stackoverflow", 
     key = "7ByAoS4kEea1yxIfJA1CUw", 
     itemId = "FWGnz", 
     partId = "OY5fJ", 
     maxScore = 10d, 
     styleScoreRatio = 0.0, 
     dependencies = depsSpark, 
     options = Map("Xmx"->"1540m", "grader-memory"->"2048", "totalTimeout" -> "900", "grader-cpu" -> "2")), 
    "timeusage" -> Assignment(
     packageName = "timeusage", 
     key = "mVk0fgQ0EeeGZQrYVAT1jg", 
     itemId = "T19Ec", 
     partId = "y8PO8", 
     maxScore = 10d, 
     styleScoreRatio = 0.0, 
     dependencies = depsSpark :+ ("org.apache.spark" %% "spark-sql" % "2.1.0"), 
     options = Map("Xmx"->"1540m", "grader-memory"->"2048", "totalTimeout" -> "900", "grader-cpu" -> "2")) 
) 
} 

は見えるが、今回はdel %TEMP%\jansi.dllのソリューションは、そのようなファイルがありませんことを報告します。

答えて

5

これは、このCourseraクラスの課題のプロジェクトで参照される 'coursier'ライブラリの問題が原因です。

問題はWindows固有のもので、1か月前に解決されました(2017年2月〜)。参照:https://github.com/coursier/coursier/issues/274そして、ありがたいことに、このコースでは "coursier"ライブラリの新しいビルドを入手できます。

解決策は、割り当てのためのプロジェクトにこの新しい、固定のバージョンのライブラリを使用させることです。これを行うには

addSbtPlugin("io.get-coursier" % "sbt-coursier" % "1.0.0-M15-5") // or really anything past M15-3 it seems, but M15-5 is currently 'newest' 

addSbtPlugin("io.get-coursier" % "sbt-coursier" % "1.0.0-M15") 

から割り当てフォルダ内の「プロジェクトの\ plugins.sbt」内の関連テキストを変更して、あなたが行ってもいいはずです!

+0

大変感謝します。 –

+0

あなたは大歓迎です!私はまったく同じ船に乗っていたので、私たちは今私たちの課題を完了することができてうれしいです。 –

+0

大きな感謝。できます... – Shekhar

関連する問題