Issue
When compiling with ant
, calls to sun.awt.AppContext
work, however the same code compiled with IntelliJ fails using AdoptOpenJDK11.
sun.awt.AppContext
with Oracle JDK8 works with IntelliJsun.awt.AppContext
with AdoptOpenJDK11 does NOT work with IntelliJ
Although Sun/Oracle has warned for a while about avoiding the sun.*
packages, there are certain features (bugs?) in Java that still require them and stranger, the command line seems happy.
Sample code:
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());
}
}
}
How does one configure IntelliJ to behave like ant
and allow access to sun.awt.*
packages?
Solution
Disable the Use '--release' option...:
See this answer for details.
Answered By - CrazyCoder
Answer Checked By - Cary Denson (JavaFixing Admin)