Ubuntu + Scala REPL,命令未在控制台上输入

38

我正在使用Ubuntu 18.04和Scala 2.11.12(OpenJDK 64位服务器VM,Java 1.8.0_162)。

一旦我打开了Scala shell,我就无法看到我输入的任何内容。尽管如此,它确实被输入了。

当我在控制台键入 println("Hello, world!") 时,下面是发生的情况:

$ scala 
Welcome to Scala 2.11.12 (OpenJDK 64-Bit Server VM, Java 1.8.0_162).
Type in expressions for evaluation. Or try :help.

scala> Hello, world!

scala>

有什么想法可以帮助我们度过难关吗?


以下的解决方案为我解决了一个不同的问题:https://dev59.com/XFcP5IYBdhLWcg3wf6Cb#44361749。我不确定这些问题是否相关,但也许这可以帮助解决这个问题。 - Ben
6个回答

72

要解决当前 Scala REPL 会话中的问题,请运行:


import sys.process._
"reset" !

为了彻底解决问题,需要完全删除scala并使用dpkg重新安装它(而不是使用apt):

sudo apt-get remove scala-library scala
sudo wget www.scala-lang.org/files/archive/scala-2.11.12.deb
sudo dpkg -i scala-2.11.12.deb

哦,让我试试那个... :) - Abhay Dandekar
1
太棒了,这对我有用!我猜这是Scala设置问题,与系统组和系统用户Scala有关。非常感谢! - Abhay Dandekar
1
很好。这个过程还可以给REPL添加漂亮的颜色!非常重要。 - joel
1
请注意,此Scala软件包与OpenJDK不兼容,原因是https://issues.scala-lang.org/browse/SI-10098。它将输出“cat:/usr/lib/jvm/java-8-openjdk-amd64/release:没有这样的文件或目录”。 - Fernando Correia
2
虽然这两种解决方案都有效,但问题的原因是什么?是Scala REPL功能存在错误还是安装Scala的方法不正确? - nashter
我使用了上面的代码,但将版本替换为2.13.1。 我正在使用Pop OS 18.04(类似于Ubuntu 18.04)。 - Alex Lamson

18

以下事项适用于我。

  1. 启动sbt
  2. 通过sbt打开Scala控制台。

~$ sbt
    [info] Loading project definition from /home/abhay/project
    [info] Set current project to abhay (in build file:/home/abhay/)
    [warn] sbt server could not start because there's another instance of sbt running on this build.
    [warn] Running multiple instances is unsupported
    sbt:abhay> console
    [info] Starting scala interpreter...
    Welcome to Scala 2.12.4 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_161).
    Type in expressions for evaluation. Or try :help.
    scala> printf("Hello, Abhay!"); 
    Hello, Abhay!
    scala>

目前这对我有用。

我相信这是一些环境问题。还有其他人遇到类似的情况吗?

〜Abhay


非常感谢您发布这篇文章。我遇到了同样的问题,但似乎无法弄清楚为什么会出现这种情况。通过谷歌搜索,我找到了您的帖子,并向您致敬,因为在升级后,我一直在想为什么它停止工作。即使完全重新安装也没有帮助。 - Kabeer Ahmed
很高兴这个对你有用.. :) ...如果你发现可以不使用sbt让它工作,一定要分享一下。谢谢 - Abhay Dandekar
1
这对我有效,但有趣的是一旦我退出控制台,最初描述的问题就会重新出现,即我无法看到我输入的任何内容。 - Jonathan Crosmer

11

如上所述,scala 2.11.12在启动REPL之前会出现一些错误,而这些错误在scala 2.12.x中已得到解决。因此,请卸载Scala并使用dpkg安装最新的scala包。

sudo apt-get remove scala-library scala
sudo wget www.scala-lang.org/files/archive/scala-2.12.8.deb
sudo dpkg -i scala-2.12.8.deb

2
在我看來,這是最乾淨的解決方案。我只想補充一下,僅幾小時前,Scala 2.13.0 版本的 deb 和 rpm 包已經發布給公眾。因此,除非您有安裝 2.12.x 版本的特定原因,否則我建議每個人直接選擇 2.13.0 版本,使用 sudo wget www.scala-lang.org/files/archive/scala-2.13.0.deb 等方式進行安裝。 - Sal Borrelli

1
安装 SBT:

echo "deb https://dl.bintray.com/sbt/debian /" | sudo tee -a /etc/apt/sources.list.d/sbt.list
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2EE0EA64E40A89B84B2DF73499E82A75642AC823
sudo apt-get update
sudo apt-get install sbt

然后在命令提示符上输入sbtenter image description here

接着输入consoleenter image description here

就可以了。

测试: 输入:printf("Hello Scala")

enter image description here

干杯!!!


1

这对我有用!

Ubuntu 步骤: 1. 进入 /usr/share/sbt/bin 2. 打开文件 "sbt" 3. 在 "#!/bin/sh" 下面添加 "export TERM=xterm-color"

OS X 步骤: 1. 进入 /usr/local/bin/ 2. 打开文件 "sbt" 3. 在 "#!/bin/sh" 下面添加 "export TERM=xterm-color"


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接