运行具有Scala代码的Java程序的最佳方法是什么?

时间:2014-11-01 22:02:55

标签: java scala jvm

假设你有一个3人团队,其中2名成员在Java工作,另一名成员在Scala工作。是否可以使用Java编译器/ JVM编译和运行此程序,还是需要使用Scala编译器/ JVM?

运行同时具有Java和Scala源代码的程序的最佳方法是什么?对该主题的任何进一步阐述都会有所帮助。

4 个答案:

答案 0 :(得分:2)

Scala是基于JVM的语言,因此Scala编译器能够理解Java程序,但反之亦然。因此,如果程序同时具有Scala和Java文件,则使用Scala编译器编译它似乎是唯一的选择。

关于如何运行这些程序,您可以将结果汇编到JAR中,JAR可以通过“常规”方式由JVM运行。如果您使用sbt作为您的程序,它有一个方便的'程序集'插件,将为您完成大部分工作。

答案 1 :(得分:1)

大多数IDE允许同时使用Java和Scala代码。 Netbeans和IDEA开箱即用。也可能是日食。

如果您想单独使用Scala和Java代码,请将Scala代码编译为JAR,并要求Java人员将其用作外部库。对于JVM,Scala和Java代码是难以区分的。

Java人员需要scala-library.jar中Scala发行版中提供的上述jar加SCALA_HOME/lib。如果Scala代码使用actor等,则需要在上面的dir中提供额外的Scala jar。

我这么做多年了。 Java家伙有时甚至不知道它是用Scala编写的。

答案 2 :(得分:0)

规范的方法是简单地使用SBT而不是Maven。您也可以继续使用Maven:http://davidb.github.io/scala-maven-plugin/

另见http://www.scala-lang.org/old/node/5248.html

上的讨论

答案 3 :(得分:0)

要编译Scala代码,您将需要Scala编译器,它将生成符合JVM的类文件。所以问题第一部分的答案是肯定的。是的,您可以在JVM中运行已编译的Scala代码,但由于它使用Scala库,您需要在类路径中提供它。