<pre name="code" class="plain">/** * @author Administrator */ object Maps { val colors = Map("red" -> 0xFF0000, "turquoise" -> 0x00FFFF, "black" -> 0x000000, "orange" -> 0xFF8040, "brown" -> 0x804000) def main(args: Array[String]){ for(name <- args)println( colors.get(name) match{ case Some(code) => name + " has code: " + code case None => "Unknown color: " + name }) } }
scalac -d class/ Maps.scala
fsc -d class/ Maps.scala
第一次执行fsc时,会创建一个绑定在计算机端口上的本地服务器后台进程。然后它就会把文件列表通过端口发送给后台进程,由后台进程编译。下一次执行fsc时,检测到后台进程已经在运行了,于是fsc将只把文件列表发给后台进程,它会立刻开始编译文件。使用fsc,只须在首次运行的时候等待Java运行时环境的启动。如果想停止fsc后台进程,可以执行命令:
fsc -shutdown
jar -cvf maps.jar -C class/ .
java -cp maps.jar Maps red blue black orange
运行结果如下图所示:
报错提示Scala中的方法没有找到,为什么没有找到?这里先声明:该程序在Eclipse for Scala(IDE)上运行是没问题的,所以问题可能出在Scala的jar包没有引入,那么用-D参数引入jar包,命令行如下:java -Djava.ext.dirs=$SCALA_CP -cp maps.jar Maps red blue black orange
(注:SCALA_CP=$SCALA_HOME/lib)
运行结果如下图所示:scala -cp maps.jar Maps red blue black orange
运行结果如下图所示: