Scala程序编译运行
来源:互联网 发布:java定时执行任务 编辑:程序博客网 时间:2024/05/16 08:34
1.编译
Scala演示代码如下:<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: " + codecase None =>"Unknown color: " + name})}}
1.1方式一scalac
使用Scala的基本编译器——scalac。开始编译源文件,但在编译完成之前会有几秒的停顿。因为每次编译器启动时,都要花一些时间扫描jar文件内容,并且在开始编译提交的源文件之前完成更多其他初始化工作(因此可能比Java程序编译慢)。命令如下:scalac -d class/ Maps.scala
1.2方式二fsc
Scala的发布包里还包括了一个叫做fsc(快速Scala编译器,Fast Scala Compiler)的Scala编译器后台服务(daemon)。估计是针对Scala程序编译慢才刻意提供的服务。使用方法如下(其实用法和scalac差不多):fsc -d class/ Maps.scala
第一次执行fsc时,会创建一个绑定在计算机端口上的本地服务器后台进程。然后它就会把文件列表通过端口发送给后台进程,由后台进程编译。下一次执行fsc时,检测到后台进程已经在运行了,于是fsc将只把文件列表发给后台进程,它会立刻开始编译文件。使用fsc,只须在首次运行的时候等待Java运行时环境的启动。如果想停止fsc后台进程,可以执行命令:
fsc -shutdown
2.打包
打包过程和Java程序打包没什么两样,这里不做累述,仅给出命令行如下:jar -cvf maps.jar -C class/ .
3.运行
3.1方式一java
使用java方式运行打包好的Scala程序有一个地方特别需要注意。这里,先看按Java程序的方式,不做任何处理运行Scala,命令行如下: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)
运行结果如下图所示:3.2方式二scala
其实可以直接使用scala命令来运行的,不要以为scala命令只能开启Scala命令行模式,闲言少叙,直接看命令行:scala -cp maps.jar Maps red blue black orange
运行结果如下图所示:
4.总结
如果多次编译Scala程序建议使用fsc(每一种事物的存在都有它道理的),如果只须编译一次Scala程序,就用scalac吧,毕竟fsc用完记得关闭; 运行Scala程序建议使用scala命令,不建议用java命令。
参考文献
《Scala编程》 0 0
- Scala程序编译运行
- sublime3编译运行scala程序
- 用sublime text 3 编译运行scala程序
- scala脚本编译运行
- scala命令行编译运行
- Scala学习1之用sbt和脚本一步编译打包运行scala程序
- 命令行编译运行scala文件
- scala获取程序运行时间
- scala 计算程序运行时间
- 在linux上,用scalac编译在Spark平台上运行的scala程序
- Sublime中编译运行java和scala
- java程序编译运行
- 程序编译运行相关
- maple 程序,编译,运行
- 编译运行java程序
- 【scala系列】sublime text 3中运行scala程序
- 安装IDEA和运行SCALA程序
- scala程序打包成jar包运行
- Linux中断(interrupt)子系统之五:软件中断(softIRQ)
- GRE写作必备句型
- ubuntu下宽带连接
- wifi连接adb
- 到顶到页面上的图片下拉会变大的效果
- Scala程序编译运行
- leetCode 72.Edit Distance (编辑距离) 解题思路和方法
- 在虚拟机安装linux Utunbu 时的问题解决
- 相似基因
- 算法导论中的归并排序C语言实现
- 欢迎使用CSDN-markdown编辑器
- Android 文字环绕 图文混排 支持Span折叠
- Java笔记--基础
- Android Studio中如何引用图片资源