如果我编写了Scala程序,我是否可以通过某种方式对其进行编译,以便任何拥有标准Sun Java JVM的人都可以运行它?我想Scala编译器必须在编译项目中包含Scala特定的API代码?我感兴趣的原因是我们的课程项目通常可以用自己喜欢的任何语言提供,但是分级交付的TA通常希望在他们自己的机器或实验室机器上运行代码。
答案 0 :(得分:21)
在JVM上运行已编译的Scala程序不需要做任何特殊操作。它只是普通的JVM字节码。您唯一需要的是确保标准Scala库(scala-library.jar)在运行时包含在类路径中。这只是额外的依赖(或者如果你为你的GUI使用Swing包装器,你也可能需要scala-swing.jar)。
如果您担心用户方便,您甚至可以将应用程序打包到单个jar中,因此它包含scala-library.jar的内容以及您自己的类和资源。但我个人只有在这个jar可执行时才会这样做(可以作为java -jar yourApplication.jar运行)。
关于Scala库的说明:
答案 1 :(得分:5)
是。如果在类路径中包含相应的scala库jar文件,则可以使用java运行scala程序,因为编译的scala代码与已编译的java代码相同。
答案 2 :(得分:1)
如果你曾经使用过任何Java库,那就像对待Scala一样。获取Scala的jar(库中的jar),然后使用其中一个程序将它与jar一起打包,或者将它们一起分发。