Scala编译器生成类似Java编译器的字节代码,可以在依赖于平台的JVM上运行吗?那么为什么我们需要完整的JDK作为先决条件?是否在scala中包含少量Java项目并进行调试?请提供一些见解。
答案 0 :(得分:3)
我刚刚在sbt和JRE但没有JDK的系统上测试了这个声明。编译工作正常:不需要JDK。如果您要签署.jar文件或做其他模糊的事情,您将需要它用于jarsigner。
答案 1 :(得分:2)
来自官方消息来源:https://wiki.scala-lang.org/display/SYGN/General+FAQs
我应该使用什么JRE来运行Scala?
任何支持Java 1.4或5.0或6.0字节代码的JRE都应该有效。我们 定期测试Scala:
- 适用于Java 1.4.2的Sun HotSpot JRE,适用于Linux / x86和Windows
- 适用于Java 5.0的Sun HotSpot JRE,适用于Linux / x86,Windows,Mac OS X / x86和Mac OS X / PPC(虽然在Apple的Mac OS X上正常运行 英特尔,Mac OS X PowerPC JVM仅在解释时支持Scala 模式。不支持JIT(混合)模式。运行java -Xint 停用JIT。解释执行速度比JIT慢10倍 执行。)
- 适用于Java 6.0的Sun HotSpot JRE,适用于Linux / x86,Windows和Mac OS X / x86
- 适用于Linux / x86上的Java 5.0的IBM J9 JRE 2.3
- 适用于Linux / x86上的Java 6.0的IBM J9 JRE 2.4。 HotSpot 1.6是我们用于Scala的标准JRE,应该是最稳定的。我们 然而,在Linux上观察到了显着的速度改进 使用J9。
简而言之,JRE就足够了 - 不需要完整的JDK。
请注意,您确实需要JDK进行开发(即将Scala代码编译为Java字节码)。