无法从 tools.jar 中找到符号

问题描述

代码如下

import com.sun.tools.javac.util.Abort;

public class Test {
    public static void main(String[] args) {
        System.out.println("hello world");
    }
}

使用javac来编译这个文件,编译错误像这样

com.sun.tools.javac.util 不存在

我使用的是 mac,这是我的 java -version 输出

openjdk version "1.8.0_265"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_265-b01)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.265-b01,mixed mode)

解决方法

com.sun 包含 Oracle 私有 JDK 类(查看更多信息 hereoffical statement)。

您正在运行 OpenJdk,并且此 JDK 不包含 Sun 的软件包。

2 个解决方案:

  • 使用 Oracle JDK 执行您的程序
  • 不要使用这些类。

请注意,正是出于这个原因,在应用程序中使用 com.sun 包被视为一种不好的做法。