软件包sun.awt不存在

时间:2019-05-31 02:56:05

标签: java intellij-idea java-11 openjdk-11 adoptopenjdk

使用ant进行编译时,对sun.awt.AppContext的调用可以工作,但是使用IntelliJ编译的相同代码无法使用AdoptOpenJDK11。

  • sun.awt.AppContext Oracle JDK8 配合使用IntelliJ
  • sun.awt.AppContext AdoptOpenJDK11 不适用于IntelliJ

尽管Sun / Oracle有warned for a while关于避免使用sun.*软件包的建议,但仍有certain features (bugs?) in Java that still require them和陌生人,命令行似乎很高兴。

示例代码:

package test;

import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import sun.awt.AppContext;

public class Main {

    public static void main(String[] args) {
        //Update printer list in CUPS immediately
        AppContext.getAppContext().put(PrintServiceLookup.class.getDeclaredClasses()[0], null);

        PrintService[] printers = PrintServiceLookup.lookupPrintServices(null, null);
        for (PrintService p : printers) {
            System.out.println(p.getName());
        }
    }
}

enter image description here

如何配置IntelliJ使其表现得像ant并允许访问sun.awt.*软件包?

1 个答案:

答案 0 :(得分:3)

禁用使用'--release'选项...

release

See this answer了解详情。