簡體   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