3

按照这里这里的帖子,我必须安装两个不同版本的 Java/OpenJDK

brew install java
brew cask install java

我现在有openjdk 13.0.2

openjdk 13.0.2 2020-01-14
OpenJDK 运行时环境 (build 13.0.2+8)
OpenJDK 64-Bit Server VM(build 13.0.2+8,混合模式,共享)

在两个不同的位置

  • /usr/local/opt/openjdk/bin
  • /usr/local/opt/openjdk/libexec/openjdk.jdk/Contents/Home/bin/

openjdk 14

openjdk 14 2020-03-17
OpenJDK 运行时环境 (build 14+36-1461)
OpenJDK 64-Bit Server VM(build 14+36-1461,混合模式,共享)

也在两个不同的地方

  • /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/
  • /Library/Java/JavaVirtualMachines/openjdk-14.jdk/Contents/Home/bin/

所以我的问题是

  • 为什么每次安装 OpenJDK 都有两个不同的位置?
  • 如何确定我的系统上是否有更多的 JDK 安装?Ransudo find / -name java对我的终端进行了核对(请参阅此处的日志)。
  • 如何知道这些不同版本的 java 是如何安装的?
  • 我知道 JDK 是 Java SDK,而 JRE(Java 运行时环境)是我认为 OpenJDK 没有的 Oracle 东西(?),但是查看 OpenJDK下载页面什么是“JMC”和“Java SE”?!
4

1 回答 1

1

您所看到的是 JDK 在 macOS 上的工作方式。但基本上你应该知道我们有两个实体,分别称为 JDK 和 JRE。JDK是Java开发人员编译和运行他们的应用程序的工具。JRE 是供客户端运行 Java 应用程序的运行时。JDK包含一个JRE,所以当你有JDK时不需要安装JRE。

JDK 是一个文件夹,您可以根据您的操作系统将其复制粘贴到您需要的每个位置,然后将 bin 文件夹添加到您的PATH. 所以你可能有很多 JDK 文件夹,但只有一个添加到你的文件夹PATH是你当前工作的 JDK,它们不能在一个环境中同时工作,但你可以在不同的用户配置文件上拥有多个 Java 版本。

  1. 您所拥有的是一个带有元数据和整个 macOS 链接的安装。
  2. 您的硬盘周围可以有多个 JDK 文件夹,但目前只有一个在工作,这就是您在用户配置文件中拥有的那个。
  3. 我不知道如何找出它们是如何安装的。您可以在您的操作系统中查询诸如 brew 之类的工具,以了解他们是否安装了任何 java,但不是来自 JDK 本身。
  4. JMC是java任务控制,它是java应用程序的监控应用程序。正如我所说,JRE 是运行应用程序的运行时,而 OpenJDK 本身也包含运行时。JavaSE 是标准版的 Java 规范,因为我们也有其他版本。
于 2020-04-18T23:41:56.160 回答