第1步:安装Java
Scala程序需要运行在JVM(Java虚拟机)上,因此,在安装Scala之前,需要配置Java环境(jdk版本1.5及其以上)。关于linux下安装,可以参考我的这篇博客:
Jdk 1.8在CentOS 7的安装与配置(https://blog.csdn.net/weixin_41297324/article/details/83592014)
第2步:安装Scala
访问Scala官网(官网),下载Scala。登录后,官网会自动识别你的操作系统类型,如果是Windows操作系统,官网会自动提供.msi格式的安装包,比如,笔者于2016年10月31日登录官网,可以下载到scala-2.11.8.msi,在Windows操作系统中,可以运行这个安装包,安装Scala。
首先要指定Scala的安装目录,比如,这里我们选择安装在“/usr/local/”目录下,这里假设当前用户登录名是hadoop。
然后,把刚才下载的scala-2.11.8.tgz文件解压缩到“/usr/local/”目录下,修改文件夹名称,并为hadoop用户赋予权限,具体如下:
sudo tar -zxf ~/下载/scala-2.11.8.tgz -C /usr/local # 解压到/usr/local中
cd /usr/local/
sudo mv ./scala-2.11.8/ ./scala # 将文件夹名改为scala
sudo chown -R hadoop ./scala # 修改文件权限,用hadoop用户拥有对scala目录的权限
接着需要把scala命令添加到path环境变量中。这里我们在 ~/.bashrc 中进行设置。可以采用vim编辑器打开.bashrc文件:
vim ~/.bashrc
打开vi编辑器以后,需要键盘敲击输入一个字母i,进入编辑状态,然后才能修改内容。
然后,在.bashrc文件的最开头位置,修改path环境变量设置,把scala命令所在的目录“/usr/local/scala/bin”增加到path中,具体如下:
export PATH=$PATH:/usr/local/scala/bin
注意,上面的PATH和等号之间,不要加入任何空格,否则会出错。
修改后,保存退出(方法是:首先,按键盘Esc键,退出vim的编辑状态,然后,敲击键盘输入“:wq”三个英文字母,然后回车,即可保存退出)。
接着还需要让该环境变量生效,执行如下代码:
source ~/.bashrc # 使变量设置生效
设置好后我们来检验一下是否设置正确,可以输入scala命令:
scala
第3步:测试Hello,World!
Scala融合了面向对象编程思想,所以,这里我们采用一个包含了main()方法的大家比较熟悉的JVM应用程序,这里以Hello World程序为例进行说明。
请登录Linux系统,打开命令行终端(可以使用Ctr+Alt+T组合键来打开终端)。现在请在Scala安装目录/usr/local/scala下面新建一个mycode文件夹,用于存放自己的练习代码文件(后面我们都会把练习代码文件放在/usr/local/scala/mycode这个目录下),创建目录的命令如下:
cd /usr/local/scala
mkdir mycode
使用下面命令到达mycode目录,并新建一个test.scala文件:
cd /usr/local/scala/mycode
vim test.scala
在test.scala文件中输入以下代码:
object HelloWorld {
def main(args: Array[String]){
println("Hello, World!")
}
}
关于上面代码,需要重点说明两点:
(1)在上面代码中,定义了程序的入口main()方法。可以看出,关于main()方法的定义,Java和Scala是不同的,在Java中是用静态方法(public static void main(String[] args)),而Scala中则必须使用对象方法,本例中,也就是HelloWorld对象中的main()方法。
(2)对象的命名HelloWorld可以不用和文件名称一致,这里对象名称是HelloWorld,而文件名称却是test.scala。这点和Java是不同的,按照Java的命名要求,这里的文件名称就必须起名为HelloWorld.scala,但是,在Scala中是没有这个一致性要求的。
(3)Scala是大小写敏感的,所以,不要输入错误,比如把小写开头的object输成大写开头的Object。文件名Test.scala和test.scala也是两个不同的文件。
下面我们用scalac命令编译test.scala代码文件,并用scala命令执行,如下:
scalac test.scala //编译的时候使用的是Scala文件名称
scala -classpath . HelloWorld //执行的时候使用的是HelloWorld对象名称
注意,上面命令中一定要加入”-classpath .”,否则会出现“No such file or class on classpath: HelloWorld”。
上述命令执行后,屏幕上打印出“Hello, World!”。