Scala REPL throws java.lang.NumberFormatException

I am using arch linux. I installed the jre8-openjdk and the scala packages via pacman. The scala REPL works but displays an error when I run it:

~
❯ scala
Welcome to Scala 2.12.2-20170419-092530-unknown (OpenJDK 64-Bit Server VM, Java 1.8.0_131).
Type in expressions for evaluation. Or try :help.
[ERROR] Failed to construct terminal; falling back to unsupported
java.lang.NumberFormatException: For input string: "0x100"
	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
	at java.lang.Integer.parseInt(Integer.java:580)
	at java.lang.Integer.valueOf(Integer.java:766)
	at jline.internal.InfoCmp.parseInfoCmp(InfoCmp.java:59)
	at jline.UnixTerminal.parseInfoCmp(UnixTerminal.java:242)
	at jline.UnixTerminal.<init>(UnixTerminal.java:65)
	at jline.UnixTerminal.<init>(UnixTerminal.java:50)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at java.lang.Class.newInstance(Class.java:442)
	at jline.TerminalFactory.getFlavor(TerminalFactory.java:211)
	at jline.TerminalFactory.create(TerminalFactory.java:102)
	at jline.TerminalFactory.get(TerminalFactory.java:186)
	at jline.TerminalFactory.get(TerminalFactory.java:192)
	at jline.console.ConsoleReader.<init>(ConsoleReader.java:243)
	at jline.console.ConsoleReader.<init>(ConsoleReader.java:235)
	at jline.console.ConsoleReader.<init>(ConsoleReader.java:223)
	at scala.tools.nsc.interpreter.jline.JLineConsoleReader.<init>(JLineReader.scala:64)
	at scala.tools.nsc.interpreter.jline.InteractiveReader.<init>(JLineReader.scala:33)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at scala.tools.nsc.interpreter.ILoop.$anonfun$chooseReader$1(ILoop.scala:881)
	at scala.tools.nsc.interpreter.ILoop.mkReader$1(ILoop.scala:885)
	at scala.tools.nsc.interpreter.ILoop.$anonfun$chooseReader$4(ILoop.scala:891)
	at scala.util.Try$.apply(Try.scala:209)
	at scala.tools.nsc.interpreter.ILoop.$anonfun$chooseReader$3(ILoop.scala:891)
	at scala.collection.immutable.Stream.map(Stream.scala:415)
	at scala.tools.nsc.interpreter.ILoop.chooseReader(ILoop.scala:891)
	at scala.tools.nsc.interpreter.ILoop.$anonfun$process$2(ILoop.scala:910)
	at scala.Option.fold(Option.scala:158)
	at scala.tools.nsc.interpreter.ILoop.newReader$1(ILoop.scala:910)
	at scala.tools.nsc.interpreter.ILoop.preLoop$1(ILoop.scala:914)
	at scala.tools.nsc.interpreter.ILoop.$anonfun$process$11(ILoop.scala:983)
	at scala.tools.nsc.interpreter.ILoop.withSuppressedSettings$1(ILoop.scala:964)
	at scala.tools.nsc.interpreter.ILoop.startup$1(ILoop.scala:978)
	at scala.tools.nsc.interpreter.ILoop.$anonfun$process$1(ILoop.scala:1009)
	at scala.runtime.java8.JFunction0$mcZ$sp.apply(JFunction0$mcZ$sp.java:12)
	at scala.reflect.internal.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:125)
	at scala.tools.nsc.interpreter.ILoop.process(ILoop.scala:909)
	at scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:75)
	at scala.tools.nsc.MainGenericRunner.run$1(MainGenericRunner.scala:88)
	at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:99)
	at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:104)
	at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)


scala> 

Version info:

~
❯ java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b11)
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)

Thanks for your help.

Hi Ethan

This StackOverflow question looks like it is the same problem, resolved by downgrading ncurses.

Hope that helps,

Brian

Another pretty quick-fix is
export TERM=xterm-color
Although it may break some other things.
See https://github.com/sbt/sbt/issues/3240

The SO comment says it was fixed in jline 2.14.4, which is included in the current 2.12.3 scala.

I just add export TERM=xterm-color line into ~/.bashrc location worked for me on Linux m/c.