【问题标题】:Is com.sun.tools.javac.util available in openjdk 8?com.sun.tools.javac.util 在 openjdk 8 中可用吗?
【发布时间】:2019-10-04 06:54:44
【问题描述】:

我刚刚在我的 Mac 中安装了 brew 的 openjdk 8。但是,当我使用 Pair: "import com.sun.tools.javac.util.Pair;" 时,虽然 IntelliJ 没有报告任何错误,但它会提示一个错误状态,即 "error: package com.sun.tools .javac.util 不存在”。我记得 Java 8 包含 Pair。 openjdk 8是否也包含Pair?如果不是,哪个版本的 openjdk 包含 Pair?谢谢。
另外,谁能告诉我如果我用Oracle的java 11搭建公司的web服务器,需要付费吗?他们怎么知道我使用java的目的?他们会监控电脑吗?谢谢!

【问题讨论】:

  • @RobbyCornelissen sun.*com.sun 包之间存在差异,后者是“官方太阳课程”而不是内部课程。但既然 Sun 走了,我也不会碰那些课。特别是对于像Pair 类这样微不足道的东西。
  • @Kayaman 是的,但要点保持不变:两者都不是“官方、受支持的公共接口”的一部分,因此不可移植。
  • 您可以使用 JavaFX Pair。另一方面:实现你自己的Pair 类应该是微不足道的。 (不要忘记equals()hashCode()。)
  • @RobbyCornelissen 链接无关紧要。它明确且仅与 sun.* 包有关。 JDK API 中有许多 com.sun.* 包,例如所有 LDAP 提供程序。然而,这个特定的包可能不是其中之一。
  • 是的,我似乎只有两个选择:要么自己实现 Pair,要么将 java 更新到 java9 以拥有 JavaFX....你们知道如果我应该支付许可证费用吗?使用java9+运行公司的web服务器?

标签: java intellij-idea intellij-15


【解决方案1】:

您可以在此处找到 JDK 源代码:

https://hg.openjdk.java.net/jdk/jdk13/

据我所知,它还在那里:

> find . -name "Pair.java" | grep javac
./src/jdk.compiler/share/classes/com/sun/tools/javac/util/Pair.java

看起来像您的环境相关问题。

它在 Java 1.8 上也能正常工作

采用openjdk

默认下载地址:https://adoptopenjdk.net

亚马逊 Corretto

默认下载地址:https://docs.aws.amazon.com/corretto/latest/corretto-8-ug/what-is-corretto-8.html

【讨论】:

  • 有趣...我用brew安装java,采用openjdk8。你用的是哪个版本的jdk?
  • 我正在使用来自采用和亚马逊的默认下载。工作得很好。总的来说,我对brew 有点怀疑,我更喜欢直接从供应商那里下载软件包——如果有的话。这就是为什么我更喜欢直接从开发者的发布页面安装JDK
  • 我试图找到提供 Pair 类的库,然后为我寻找 intelliJ import com.sun.tools.javac.util.Pair。这个类是 Java 的标准吗?我想用官方的。
猜你喜欢
  • 2021-02-27
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
  • 2021-07-10
  • 1970-01-01
  • 2020-12-21
  • 2015-11-11
  • 2015-01-20
相关资源
最近更新 更多