【问题标题】:Installing Java OpenJDK with HomeBrew: why there are same versions of java on different locations?使用 HomeBrew 安装 Java OpenJDK:为什么不同位置的 java 版本相同?
【发布时间】:2020-04-18 20:23:52
【问题描述】:

按照herehere 的帖子,我必须安装两个不同版本的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? Ran sudo find / -name java 核爆了我的终端(见日志here)。
  • 如何知道这些不同版本的java是如何安装的?
  • 我知道 JDK 是 Java SDK,而 JRE(Java 运行时环境)是我认为 OpenJDK 没有的 Oracle 东西(?),但看看 OpenJDK download page 什么是“JMC”和“Java SE”? !

【问题讨论】:

    标签: java macos homebrew homebrew-cask


    【解决方案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 规范,因为我们也有其他版本。

    【讨论】:

      猜你喜欢
      • 2014-09-18
      • 1970-01-01
      • 2019-04-16
      • 2017-11-21
      • 2020-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多