为什么安装Scala需要额外安装JDK?
为什么需要额外安装JDK Scala发行版不包括将Scala转换为JVM字节码的Scala编译器吗 难道运行Scala编译程序不需要java和JRE吗 Scala需要JRE中没有的、Scala自己的版本中没有的JDK做什么为什么安装Scala需要额外安装JDK?,scala,Scala,为什么需要额外安装JDK Scala发行版不包括将Scala转换为JVM字节码的Scala编译器吗 难道运行Scala编译程序不需要java和JRE吗 Scala需要JRE中没有的、Scala自己的版本中没有的JDK做什么 谢谢。在我的机器上,Scala 2.13.1发行版提供 ├── libexec │ ├── bin │ │ ├── fsc │ │ ├── scala │ │ ├── scalac │ │ ├── scaladoc │ │ └──
谢谢。在我的机器上,Scala 2.13.1发行版提供
├── libexec
│ ├── bin
│ │ ├── fsc
│ │ ├── scala
│ │ ├── scalac
│ │ ├── scaladoc
│ │ └── scalap
│ └── lib
│ ├── jansi-1.12.jar
│ ├── jline-2.14.6.jar
│ ├── scala-compiler.jar
│ ├── scala-library.jar
│ ├── scala-reflect.jar
│ └── scalap-2.13.1.jar
因此,如果您希望使用诸如jdb
、javap
、jar
等,那么JDK安装似乎是必要的。就我个人而言,我经常在Scala REPL中使用:javap
命令作为学习过程的一部分,我假设学习过程通过调用相应的JDK工具。请注意,它似乎是:javap
通过调用javap
此外,IDE很可能正在驱动一些JDK工具来提供它们的特性。另一方面,执行Scala应用程序应该只需要JRE,因为Scala编译器生成包含JVM字节码的.class
文件
因此,对于开发,您可能需要完整的JDK,而对于执行,您至少需要JRE
考虑一下Ubuntu中的Scala包
default-jre-headless (>= 2:1.7)
libjline2-java (>= 2.13)
scala-library (= 2.11.12-4~18.04)
scala-parser-combinators
scala-xml
注意它如何只安装JRE(默认JRE headless
),而不安装完整的JDK
我还通过尝试
SBT编译
混合.scala
和.java
源代码,在Ubuntu上测试了SBT是否只与JRE一起工作。它使用成功编译,但使用失败。SBT使用来自tools.jar
,JRE 8没有附带,但是在tools.jar
发布之后,JRE 11似乎附带了所需的功能。有帮助吗?对于基本开发,您似乎只需要JRE,如果您将Java代码混合到Scala项目中,则需要JDK。对于打包,是否需要jar
,是否需要JDK?Scala自己的版本是否包含命令jar
?为什么不自己安装并检查它?同样,没有人手动编译和打包他们的应用程序。您使用的是构建工具,我不确定构建工具假设您安装了哪些二进制文件,回答这个问题的最简单方法是在新的环境中测试它。我认为最简单的答案是,您可以选择您想要的任何JDK。Scala没有理由强迫用户使用特定的JDK供应商或版本(除了兼容性问题,但这些问题往往会影响广泛的主要版本)。鉴于此,正如其他评论中已经强调的,您不一定需要JDK来开发Scala项目。