使用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());
}
}
}
如何配置IntelliJ使其表现得像ant
并允许访问sun.awt.*
软件包?