scala:在 Ubuntu 12.04 上初始化 VM 时发生错误

标签 scala error-handling virtual-machine sbt

我尝试使用 scala 语言的简单示例。 我成功安装了sbt。运行 sbt -h 时,我看到来自 sbt 的帮助消息:

Usage: sbt [options]

  -h | -help         print this message
  -v | -verbose      this runner is chattier
  -d | -debug        set sbt log level to debug
  -no-colors         disable ANSI color codes
  -sbt-create        start sbt even if current directory contains no sbt project
  -sbt-dir   <path>  path to global settings/plugins directory (default: ~/.sbt)
  -sbt-boot  <path>  path to shared boot directory (default: ~/.sbt/boot in 0.11 series)
  -ivy       <path>  path to local Ivy repository (default: ~/.ivy2)
  -mem    <integer>  set memory options (default: 1536, which is -Xms1536m -Xmx1536m -XX:MaxPermSize=384m -XX:ReservedCodeCacheSize=192m) ....

但是当我尝试在带有 scala 分配的目录中运行时(这是 Coursera 类(class)),我发现了错误:

nazar_art@nazar-desctop:~/scala/example$ sbt
Detected sbt version 0.12.1
Starting sbt: invoke with -help for other options
Error occurred during initialization of VM
Could not reserve enough space for object heap

但它应该打开 sbt 命令提示符。像这样的smt:

shell$ cd /path/to/progfun-project-directory                        # This is the shell of the operating system
shell$ sbt
> _                                                                 # This is the sbt shell

更新:

添加以下行后

java -Xms64M -Xmx256M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=64M -jar目录名 $0/sbt-launch.jar "$@"

/usr/bin 我看到下一个输出:

nazar_art@nazar-desctop:/usr/bin$ sbt
bash: /usr/bin/sbt: Permission denied
nazar_art@nazar-desctop:/usr/bin$ sudo sbt
sudo: sbt: command not found

- 为什么会发生这种情况?
- 如何解决这个问题?

最佳答案

首先,示例文件夹名称(以及您安装的 sbt 的文件夹名称)不能包含“!”。这可能也适用于其他特殊字符。甚至,我建议将 SBT 安装在路径上没有空间的文件夹中(示例文件夹也是如此)。

例如,如果您已在如下路径上安装了 SBT(或示例文件夹):

/Users/dashti/My Programs/sbt-0.12.1

您可以重新安装它,路径如下:

/Users/dashti/MyPrograms/sbt-0.12.1

通过应用此命名更改,如果错误消失,请忽略本文的其余部分。

否则,要修复上述错误,请首先找到 sbt 可执行脚本,然后对其进行编辑并更正其中的任何问题:

如果您使用的是基于 UNIX 的操作系统,请按照以下步骤操作:

1- 查找 SBT:打开终端并输入以下命令:

which sbt

您将收到如下路径:

/Users/dashti/Documents/scala-2.10.0/bin/sbt

在这个文件中,有一个用于执行java程序的命令,例如:

java -Xms512M -Xmx1024M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=128M -jar `dirname $0`/sbt-launch.jar "$@"

2-编辑 sbt 脚本:通过在终端中输入以下命令:

vim /Users/dashti/Documents/scala-2.10.0/bin/sbt

您将能够编辑此文件,也许您应该将内存使用参数更改为较低的规范(您应该考虑是否有足够的 RAM 来运行 sbt)。例如,这个将是一个更好的选择:

java -Xms64M -Xmx256M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=64M -jar `dirname $0`/sbt-launch.jar "$@"

关于scala:在 Ubuntu 12.04 上初始化 VM 时发生错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18155325/

相关文章:

java - Google secret 管理器 API 和 Google 存储 API 不适用于 Apache Spark

scala - Scala 是否有一个库方法来构建考虑空字符串的 Option-s?

scala - 不使用 Java 学习 Scala

node.js - npm ERR! Windows 10中从未调用过cb()

php - 插入行时,Codeigniter affected_rows 总是返回 0

c++ - 许多 : 'Apple Mach-O Linker Errors'

scala - Apache Flink : ProcessWindowFunction implementation

linux - chmod 不适用于 virtualbox 共享文件夹

linux - 检查BIOS/UEFI中是否启用了VT-D/IOMMU

linux - 更改节点名称后 riak 不会启动