【问题标题】:What is the best way to run a Java program that also has Scala code?运行同时具有 Scala 代码的 Java 程序的最佳方法是什么?
【发布时间】:2014-12-28 21:33:00
【问题描述】:

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

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

【问题讨论】:

标签: java scala jvm


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    如果您想分别处理 Scala 和 Java 代码,请将 Scala 代码编译为 JAR,并要求 Java 人员将其用作外部库。对 JVM 而言,Scala 和 Java 代码是无法区分的。

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

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-06-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-01-11
          • 2011-01-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多