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 IntelliJAlthough 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?
The sun.* packages are not part of the supported, public interface. A Java program that directly calls into sun.* packages is not guaranteed to work on all Java-compatible platforms. In fact, such a program is not guaranteed to work even in future versions on the same platform.
The sun.* packages are not part of the supported, public interface. A Java program that directly calls into sun.* packages is not guaranteed to work on all Java-compatible platforms.
Show activity on this post. Your JDK should have com.sun.awt.AWTUtilities. It is in rt.jar. Maybe the problem (for that file) is that your IDE excludes the parent the build path ... on the grounds that it is a bad idea to use those classes directly.
The package does not exist during recompile, but the code editor does not say (because the package exists and is in the same directory level). Thanks. Is that a Maven or Gradle project? What's the scope of the dependency in the build system? How did you define it in the build script? What's the exact error?
Disable the Use '--release' option...:
See this answer for details.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With