При компиляции с помощью ant вызовы sun.awt.AppContext работают, однако тот же код, скомпилированный с помощью IntelliJ, не работает с использованием AdoptOpenJDK11.
sun.awt.AppContext с Оракл JDK8 работает с IntelliJsun.awt.AppContext с ПринятьOpenJDK11 НЕ работает с 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.* пакетам?




Отключить Используйте параметр --release...:
Смотрите этот ответ для подробностей.
Большое спасибо, это была проблема и для моего проекта.
Спасибо, это сработало. На Mac это было расположено в
IntelliJ IDEA > Preferences > Build, Execution, Deployment > Java Compiler.