假设你有一个3人团队,其中2名成员在Java工作,另一名成员在Scala工作。是否可以使用Java编译器/ JVM编译和运行此程序,还是需要使用Scala编译器/ JVM?
运行同时具有Java和Scala源代码的程序的最佳方法是什么?对该主题的任何进一步阐述都会有所帮助。
答案 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/
上的讨论答案 3 :(得分:0)
要编译Scala代码,您将需要Scala编译器,它将生成符合JVM的类文件。所以问题第一部分的答案是肯定的。是的,您可以在JVM中运行已编译的Scala代码,但由于它使用Scala库,您需要在类路径中提供它。