让Scala解释器正常工作

43

我对Scala非常陌生。我已经下载了它,在Eclipse中成功运行并进行开发,但是在终端无法运行。

所有的网站和书籍都说只需键入scala即可,但这样做不起作用。

官方网站令人恼火地说:

我们假设Scala软件和用户环境都已正确设置。

那我该如何进行这一步骤呢?

我对这个领域非常陌生,使用术语或者假定对Scala周边框架有太多的知识会破坏一个好的回答,请保持简单易懂。

  • 操作系统: Mac OS X (10.6.7)
  • Scala版本: 2.9.0.1

谢谢。


14
对于OS X系统,我强烈推荐使用Homebrew(http://mxcl.github.com/homebrew/)。然后,您可以轻松地运行`brew install scala`命令来安装Scala并立即开始使用。除此之外,您还可以轻松地使用Homebrew安装其他非常酷的工具。MacPorts或Fink可能有类似的功能,但我更喜欢Homebrew。 - leedm777
3
@dave - 你真的应该将那个评论升级为完整的回答。 - Kevin Wright
@kevin - 现在已经有答案了。谢谢! - leedm777
8个回答

85

对于 OS X,我强烈推荐使用Homebrew

安装Homebrew非常简单。一旦安装完成,只需运行brew install scala即可安装scala并准备就绪。Homebrew还有很多其他好东西,只需要一个brew install就可以轻松获取。

如果您没有安装Java,可以使用brew cask install java来安装。

MacPortsFink可能有类似的东西,但我更喜欢Homebrew。


1
确保我们已经安装了Java,否则brew会抱怨。 - jonprasetyo

15

我不太喜欢在我的PATH变量中添加太多内容。我只是将所有程序都符号链接到/usr/local/bin目录下,这个目录已经在类路径中了。比如,如果你下载了scala并将其解压到/opt/scala-2.9.0-1目录中,可以在终端中运行以下命令:

ln -s /opt/scala-2.9.0-1/bin/scala /usr/local/bin

现在只需在终端中输入scala,就可以完成全部设置。 这样你就不必设置你的PATH,也不必在想尝试新版本的Scala时更改它。如果你下载了新版本,可以在任何位置解压缩它并创建新版本的符号链接。比如你下载了2.9.1版本并将其解压缩到/opt/scala-2.9.1中,你可以在终端键入以下内容。

ln -s /opt/scala-2.9.1/bin/scala /usr/local/bin/scala2.9.1
现在,要使用scala 2.9.1,只需在终端运行scala2.9.1。 当你准备好全面切换到2.9.1时,只需更新符号链接即可。 您也可以以同样的方式添加scaladoc、scalac、scalap等。
ln -s /opt/scala-2.9.0-1/bin/scalac /usr/local/bin
ln -s /opt/scala-2.9.0-1/bin/scalap /usr/local/bin
ln -s /opt/scala-2.9.0-1/bin/scaladoc /usr/local/bin
ln -s /opt/scala-2.9.0-1/bin/fsc /usr/local/bin
ln -s /opt/scala-2.9.0-1/bin/sbaz /usr/local/bin
ln -s /opt/scala-2.9.0-1/bin/sbaz-setup /usr/local/bin

9

您需要将 scala\bin 添加到您的 PATH 环境变量中。

在 Mac OS X 上,Scala bin 的路径通常为:/Users/<您的用户名>/scala/bin,而在 Windows 上通常为:C:\Program Files (x86)\scala\bin

在 Mac OS X 上,请使用终端并编写以下内容(使用您的用户名):

echo 'export PATH=/Users/<your username>/scala/bin:$PATH' >> ~/.bash_profile

然后关闭终端并重新启动它。

1
路径环境变量?(抱歉!) - Alex
echo 'export PATH=/Users/Alex/Downloads/scala-2.9.0.1 2/bin:$PATH' >> ~/.profile 这段代码好像没有起到任何作用,它应该有作用吗? - Alex
请关闭您的终端,重新打开并输入“scala”,然后按回车键。 - Jonas
2
@Alex coady - 注意2.9.0.1和2之间的空格。你需要确保它是一个命令--所以它可能应该是2.9.0.1\ 2/ - Rex Kerr
@Alex: 你可以尝试将它写入 ~/.bash_profile 而不是 ~/.profile,这对我没有用。但是 ~/.bash_profile 对我有效。我已经在我的回答中更新了命令。 - Jonas
显示剩余2条评论

4
Scala建议使用Homebrew安装Scala 2.9.2的Typesafe堆栈。
brew install scala sbt maven giter8

Homebrew将在/usr/local/bin中安装软链接,其中包括sbt、scala、scalac、scaladoc、scalap、fsc和g8。请跟随软链接到最终引用位置,以确定$SCALA_HOME的位置。$SCALA_HOME应该包含bin/scala和lib/scala-compiler.jar。
Typesafe建议使用sbt console而不是scala来启动解释器,因为sbt还会管理对诸如Akka之类的库依赖关系。话虽如此,如果您想直接使用scala、scalac、fsc、scalac和scaladoc,则可能需要在软链接的引用位置上运行chmod +x命令。

2
如果您不想将更多目录添加到路径中,请尝试以下步骤:
  1. 下载页面下载Scala。
  2. 解压缩并将文件夹复制到 \Library\Scala 目录下。
  3. 找到 bin 目录的完整路径,应该是 \Library\Scala\scala-2.9.2\bin。
  4. 找到 "scala" 文件,右键单击,然后创建别名。
  5. 将别名文件移动到任何方便的位置,例如桌面。
  6. 双击别名以在终端中启动Scala。

最好能够在终端中输入“Scala”,但这也可以。谢谢。 - Alex Stewart

2

我让Scala在终端中输入“scala”时自动运行的方法是将路径添加到/etc/paths文件中,而不是.bashrc文件中。

  1. Download the latest Scala binary from www.scala-lang.org/download
  2. Unzip the binary file
  3. Move the unzipped folder (named scala-2.11.2) to the /usr/bin/ or some other directory of your preference.
  4. Then open the /etc/paths file with nano:

    sudo nano /etc/paths
    
  5. and add this line to the end:

    /usr/bin/scala-2.11.2/bin
    
  6. Press Ctrl+X to exit nano and answer "Yes" when prompted to overwrite the file

  7. Then restart Terminal and once you type:

    scala
    

    you will get the scala command line that looks like this:

    Welcome to Scala version 2.11.2 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_05).
    Type in expressions to have them evaluated.
    Type :help for more information.
    
    scala> 
    
我希望这可以有所帮助。

0

如果您使用MacPorts下载了Scala,请尝试键入scala-2.9(或者是文件夹/opt/local/bin/scala/内容的文件名)

(至少在OSX Mountain Lion上可以这样做)


这是我必须要做的。为了方便起见,我执行了 sudo ln -s /opt/local/bin/scala-2.9 /opt/local/bin/scala。Mac Ports通常比Homebrew更少令人恼火,但这次不是。 - sudo

0
只需使用以下命令安装Scala:$ brew install scala,然后您就可以在终端中使用$scala来执行Scala指令。目前,官方Scala网站建议使用sbt安装Scala:$ brew install sbt,但这样做将无法在终端中使用scala关键字。

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