2)在test目录中新建文件build.sbt
3)在test目录新建project目录,进入project目录,并新建plugins.sbt,在其中添加
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.4.0")
4)在build.sbt中配置工程的name,scala编译环境,依赖等等。如:
import sbt._
import Process._
import Keys._
EclipseKeys.createSrc := EclipseCreateSrc.Default + EclipseCreateSrc.Resource
lazy val commonSettings = Seq(
name := "test",
organization := "com.marsyoung",
version := "0.0.1-SNAPSHOT",
scalaVersion := "2.11.7"
)
lazy val root = (project in file(".")).
settings(commonSettings: _*).
settings(
libraryDependencies ++= Seq(
"junit" % "junit" % "4.4",
"javax.ws.rs" % "jsr311-api" % "差笑1.1.1"
)
)
5)在cmd中者搏进入对应的project目录,即test目录。运行sbt。
6)执行eclipse命令,将对应的项目转化成可以引入eclipse开发工具并且目录结构类似maven的项目。
7)打开已经安装了scala ide的eclipse,导入对应的首庆祥project,会自动的编译成scala peoject.
1scala安装包下载
2
下载完成没梁厅后,运行msi安装文枯隐件,确认运行。
3
进入安装界面,选择next
4
scala的安装协议,选择同意然后next
5
默认完整安装就好了,可以修改安装目录。
6
确认安装,开始安装
多图
7
安装完渣穗成,点击Finnish退出安装向导
8
打开命令行,输入scala -version,显示scala信息,安装成功。
最近,笔者在研究一个有关“自然语言处理”的项目,在这个项目中,需要我们用Spark进行编程。而Spark内核是由Scala语言开发的,所以在使用Spark之前,我们必须配置好Scala,而Scala又是运行在JVM上的,所以在配置Scala之前,先要配置谨运团好JDK。下面是我个人的一些总结。我是在Win7系统下开的虚拟机,虚拟机的系统是CentOS7,在创建虚拟机完成后,它会自带一个OpenJDK,我的版本是这样的:
但是因为最开始不了解这个情况,所以我从官网上下载了jdk-8u73-linux-x64.tar.gz,并解压在/Downloads目录下。进入/etc/profile.d目录下,新建path.sh脚本文件,打开并配置环境变量如下图:
在/etc/profile.d目录下,键入source path.sh命令,使配置生效。
然而配置成功后,在控制台中键入java -version,依然会得到第一张图中的信息,后来发现在配置JDK之前,需要卸载系统自带的JDK。
在控制台中键入java,会出现如下图所示的内容:
但是不知道这些,只知道Java开发环境已经配置完毕,所以便开始找对应版本的Scala,我下载的是scala-2.10.5.tgz,并解压在/Downloads目录下。进入/etc/profile.d目录下,打开path.sh文件,配置Scala环境变量,如下图所示:
在/etc/profile.d目录下,键入source path.sh命令,使配置生效。
在控制台中键入scala -version和scala,会分别得到如下祥橘两张图中的内容:
关于Scala文件 *** 作中出现的问题
在各种项目中,我们常常需要用到文件 *** 作,笔者在近期的项目中遇到了一个与文件 *** 作相关的问题。
在代码实现的过程中,笔者首先定义了一个文件路径:def PATH = "/a/b/c.txt"
之后开始使用文件 *** 作:val source1 = Source.fromFile(PATH)
在for循环中,逐行读取文件、处理文件:for(line1 <- source1.getLines()) { // 逐行处理逻辑 }
在这一轮对文件的各行处理之后,笔者希望再次对处理后的结果进行下一轮处理,所以再次使用了for循环:for(line1 <- source1.getLines())
但是,结果显示,第二轮 *** 作并没有真正实现。
经过研究发现,在利用source对象读取完一遍文件后,它便指向了文件的尾部,再次调用for循环时,实际上没有进行任何 *** 作,因为没有读入任何数据。
解决方法是,重新实悄冲例化一个source2:val source2 = Source.fromFile(PATH)
再次调用for循环:for(line2 <- source2.getLines())
这样就可以实现再次对文件进行 *** 作了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)