При компиляции с ant
, вызовы sun.awt.AppContext
работают, однако тот же код, скомпилированный с IntelliJ, не работает с помощью AdoptOpenJDK11.
sun.awt.AppContext
с Oracle JDK8 работает с IntelliJ
sun.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());
}
}
}
![enter image description here](https://i.stack.imgur.com/j45nN.png)
Как настроить IntelliJ на поведение ant
и разрешить доступ к sun.awt.*
пакетам?