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