我尝试使用 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/