使用 编译时ant,调用sun.awt.AppContext工作,但是使用 IntelliJ 编译的相同代码使用 AdoptOpenJDK11 失败。
sun.awt.AppContext与Oracle JDK8一起使用 IntelliJsun.awt.AppContextAdoptOpenJDK11不适用于 IntelliJ
尽管 Sun/Oracle 已经警告过一段时间不要使用这些sun.*软件包,但Java 中的某些特性(错误?)仍然需要它们,而且更奇怪的是,命令行似乎很开心。
示例代码:
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());
}
}
}
如何配置 IntelliJ 的行为ant并允许访问sun.awt.*包?

