繁体   English   中英

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

[英]What is the best way to run a Java program that also has Scala code?

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

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

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

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

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

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

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

多年来我一直这样做。 Java人员有时甚至不知道它是用Scala编写的。

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

另见http://www.scala-lang.org/old/node/5248.html上的讨论

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM