使用 编译时ant
,调用sun.awt.AppContext
工作,但是使用 IntelliJ 编译的相同代码使用 AdoptOpenJDK11 失败。
sun.awt.AppContext
与Oracle JDK8一起使用 IntelliJsun.awt.AppContext
AdoptOpenJDK11不适用于 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.*
包?