【问题标题】:Ubuntu + scala REPL, Commands not typed on consoleUbuntu + scala REPL,未在控制台上输入命令
【发布时间】:2018-09-22 03:33:11
【问题描述】:

我使用的是 Ubuntu 18.04 + Scala 2.11.12(OpenJDK 64 位服务器虚拟机,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>

关于我们如何度过难关有什么想法吗?

【问题讨论】:

  • 以下针对不同问题的解决方案为我解决了这个问题:stackoverflow.com/a/44361749/2449365。我不确定这些问题如何/是否相关,但也许这将有助于阐明问题。

标签: scala ubuntu scala-repl


【解决方案1】:

修复当前 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

【讨论】:

  • 哦,让我试试... :)
  • 酷,这对我有用! ...我想,这是系统组和系统用户scala的scala设置问题。非常感谢!
  • 不错。这个过程也赋予了 REPL 绚丽的色彩! v 重要
  • 请注意,由于issues.scala-lang.org/browse/SI-10098,此 scala 包与 OpenJDK 不兼容。它将输出cat: /usr/lib/jvm/java-8-openjdk-amd64/release: No such file or directory
  • 虽然上述两种解决方案都有效,但问题的原因是什么? scala REPL 功能或安装 scala 的恰当方式是否存在错误?
【解决方案2】:

以下内容对我有用。

  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>
    

现在这对我有用。

我很确定这是一些环境问题。还有其他人面临类似的情况吗?

~阿拜

【讨论】:

  • 非常感谢您发布此信息。我遇到了同样的问题,似乎无法弄清楚为什么会发生这种情况。谷歌搜索点击了您的帖子,并感谢您发布此内容,因为我正在打破我的头脑,为什么升级后它停止工作。甚至完全重新安装也无济于事。
  • 我很高兴这能派上用场......谢谢
  • 这对我有用,但有趣的是,一旦我关闭控制台,最初描述的问题就会返回,即我看不到我输入的任何内容。
【解决方案3】:

上述的 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

【讨论】:

  • 这是我认为最干净的解决方案。我只想补充一点,就在几个小时前,Scala 2.13.0 版的 deb 和 rpm 包都已向公众发布。因此,除非您有特定原因安装 2.12.x 版本,否则我建议大家直接使用 sudo wget www.scala-lang.org/files/archive/scala-2.13.0.deb 等 2.13.0。
【解决方案4】:

这对我有用!

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”

【讨论】:

    【解决方案5】:

    安装 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
    

    然后在命令提示符下输入sbt

    然后输入 console

    很好。

    测试: 类型:printf("Hello Scala")

    干杯!!!

    【讨论】:

      【解决方案6】:

      这似乎是 JLine2 使用 JDK9+ 构建但在 JSK8 上使用的问题。

      JLine 是用于处理控制台输入的 Java 库。

      只需通过 dpkg 下载并安装:

      https://launchpad.net/~lokkju/+archive/ubuntu/java-compat/+build/16458066/+files/libjline2-java_2.14.6-1ubuntu1~bionicppa1_all.deb

      【讨论】:

        猜你喜欢
        • 2015-04-20
        • 2019-04-26
        • 1970-01-01
        • 2022-06-14
        • 2014-09-07
        • 1970-01-01
        • 1970-01-01
        • 2011-05-14
        • 2016-01-13
        相关资源
        最近更新 更多