Scala开发环境搭建

0.简介

Scala(发音为 /ˈskɑːlə, ˈskeɪlə/)是一种多范式的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。

Scala运行于Java平台(Java虚拟机),并兼容现有的Java程序。Scala的编译模型(独立编译,动态类加载)与Java和C#一样,所以Scala代码可以调用Java类库(对于.NET实现则可调用.NET类库)。

Scala包包括编译器和类库,以BSD许可证发布。

1.下载必须的软件

JDK

Scala是基于JVM的,所以必须要下载JDK,链接为 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

Scala编译器

http://www.scala-lang.org/download/  可以选好几个版本,我看公开课上推荐的是2.10.2,所以下的也是2.10.2,并不是最新的。

下载完后,需要设置一下环境变量,Scala貌似自动设好了。JDK和CLASSPATH需要手动设置下。

2.执行程序

交互式命令行下

Scala开发环境搭建_第1张图片

命令行下执行Scala文件

//helloworld.scala
object HelloWorld {
  def main(args: Array[String]) {
    println("Hello, World!")
  }
}

执行命令为:
F:\scala_workspace\helloworld>scala helloworld.scala
Hello, World!

或者
先将文件编译为.class字节码,然后再执行
F:\scala_workspace\helloworld>scalac helloworld.scala
F:\scala_workspace\helloworld>scala -classpath . HelloWorld
Hello, World!
scala -cp . HelloWorld
注意第二句一定要带上"-classpath .",否则会爆“No such file or class on classpath: HelloWorld”。

由于scala将.scala文件编译为.class文件,众所周知,.class文件java也可以执行的
F:\scala_workspace\helloworld>java -classpath ".;D:\Program Files\scala\lib\scala-library.jar" HelloWorld
Hello, World!

注意这里必须要要指定 -classpath ".;D:\Program Files\scala\lib\scala-library.jar"    分号两侧的 .和  D:\Program Files\scala\lib\scala-library.jar缺一不可!

可以看到不管是用scala还是java来执行.class文件,他们都要手动带上-classpath,这是很麻烦的,有没有什么办法不带这该死的-classpath选项呢?有,就是在CLASSPATH环境变量中指定:Windows7系统中【右键计算机】--【属性】--【高级系统设置】--【环境变量】--【编辑CLASSPATH】为下图最后一行的内容


执行结果为:


3.IDE执行

scala常用的IDE有Scala-IDE、IntelliJ-IDEA,后者没用过,这里只介绍Scala-IDE。
http://typesafe.com/stack/scala_ide_download  ( Make sure to download the IDE for Scala version 2.10.2! )
下载完后,直接解压打开即可;然后就可以新建一个简单的helloworld工程了:
1.【File】--【New】--【Other】--【Scala Wizards】--【 Scala Project
2.写上Project name 并且 点击 “Finish” 
Scala开发环境搭建_第2张图片
3.【File】-- 【New】 -- 【 Scala Object
Scala开发环境搭建_第3张图片
Scala开发环境搭建_第4张图片
点那个绿色三角,结果完美执行!这里要特别说下,scala编译速度是我见过编译型编程语言里速度最慢的!!
好了,本文主要是介绍Scala开发环境的搭建以及几种执行方式的总结。

4.参考资料

https://class.coursera.org/progfun-004/wiki/view?page=ToolsSetup
http://book.51cto.com/art/201008/218451.htm
http://zh.wikipedia.org/wiki/Scala

你可能感兴趣的:(Scala)