【问题标题】:Why does OpenJDK not allow me to install SBT? It retrieves a memory error为什么 OpenJDK 不允许我安装 SBT?它检索内存错误
【发布时间】:2019-02-10 15:43:46
【问题描述】:

我正在尝试学习 Scala,所以我在我的 Ubuntu 机器上安装了 openjdk-8-jdk,然后继续安装 sbt。

sudo apt-get install openjdk-8-jdk
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 之后,当我输入 'sbt about' 进行检查时,它检索到以下错误:

~$ sbt about
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000d5550000, 715849728, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 715849728 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /home/antonio/hs_err_pid14103.log

谁能告诉我是什么问题? 我不是一个经验丰富的程序员,我在任何地方都没有找到这个问题,也许是因为它太基础了。

谢谢!

【问题讨论】:

  • 您的系统有多少物理内存?您是否配置了任何交换? cat /proc/meminfo 可以提供此信息。看起来 sbt 正在尝试保留大约 700mb 的堆,而操作系统说它没有。
  • 没有足够的内存让 Java 运行时环境继续。恕我直言,这是自我解释。
  • Scala 也可以使用 Maven 或 Gradle 构建,顺便说一句
  • 不是官方评论,但我在 Scala 中认识的每个人都只在 Java 8 上进行测试。您的错误是内存不足。但是,尝试分配 700+ MB 的内存对于 sbt about 来说很奇怪,除非您使用的是小型系统(AWS 上的 T2 micro?)
  • 我经常在 Centos 上使用 sbt 和 open-jdk-8 没有任何问题,所以我确信你的 open-jdk 与 sbt 完美结合。自从你第一次运行 sbt 以来,它会开始下载各种 jars(包括 sbt 和 scala 编译器)——这个过程确实需要一些内存。如果您的机器确实内存不足,那么 JVM 将使用一个小堆运行,这可能会导致此类故障。您可以使用java -XX:+PrintFlagsFinal -version | grep HeapSize 来确定JVM 可以使用多少内存,然后尝试增加它。看到这个线程:stackoverflow.com/questions/28272923

标签: java scala sbt


【解决方案1】:

最后还是RAM内存不足的问题。由于我使用的是虚拟机,所以我只是添加了一些 RAM 内存,它运行良好。

感谢您的反馈!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-10
    • 2016-10-03
    • 2020-05-15
    • 2016-02-21
    • 1970-01-01
    • 1970-01-01
    • 2012-08-10
    • 2016-12-28
    相关资源
    最近更新 更多