Scala是运行在JVM上的语言,跑在标准的Java平台上,可以与所有的Java库实现无缝交互。
下面运行一个小程序来看看在JVM上如何使用java命令来运行Scala程序。
在编写代码之前,我们首先要配置环境变量。
在Windows环境下Java和Scala的环境变量配置:
1.Java环境变量
JAVA_HOME = C:/Program Files/Java/jdk1.6.0_21(我本机的安装目录)
CLASSPATH = .;%JAVA_HOME%/lib;(. 代表包含当前路径)
Path = %JAVA_HOME%/bin
2.Scala环境变量
SCALA_HOME = C:/scala-2.8.0.final
Path = %SCALA_HOME%/bin
OK!环境变量配置完了,开始写代码,我们还是以HelloWorld为例:
在C:盘跟目录下建立了HelloWorld.scala文件,内容如下:
Scala Code:
object HelloWorld{
def main(args: Array[String]) {
println("hello world!")
}
}
文件建好了,开始编译:
先打开命令行文件->然后到C盘根目录下输入scalac HelloWorld.scala
C:/>scalac HelloWorld.scala
很顺利编译通过,我们发现在C盘下生成了两个编译后的class文件HelloWorld.class和HelloWorld$.class
编译好了,运行Scala程序:
继续输入scala HelloWorld OH!我们看到了我们想要的hello world!
C:/>scala HelloWorld
hello world!
下面我们试着用java去运行一下:
输入java HelloWorld
C:/>java HelloWorld
Exception in thread "main" java.lang.NoClassDefFoundError: scala/ScalaObject
OH!没有通过!得到了一大堆堆栈输出以至于我没办法把如此多的输出全部写出来。
是什么原因呢?原来在用java命令运行scala代码的时候需要引入scala类库scala-library.jar下面我我们试试把命令写成这样的格式。
C:/>java -cp %SCALA_HOME%/lib/scala-library.jar;. HelloWorld
C:/>java -cp %SCALA_HOME%/lib/scala-library.jar;. HelloWorld
hello world!
终于看到了hello world!
我们引入scala类库以后得到了我们想要的结果,我们注意到在类库结束以后有";."符号"."表示当前路径去掉它也不影响运行效果,因为HelloWorld本身就在C盘根目录下。
如果在定义环境变量的时候就把scala的类库写到java的CLASS_PATH变量里面的话
CLASSPATH = .;%JAVA_HOME%/lib;%SCALA_HOME%/lib/scala-library.jar
我们直接运行java HelloWorld,就可以得到输出了!
C:/>java HelloWorld
hello world!
参考 地址:http://blog.csdn.net/leano/article/details/5867108