пакет sun.awt не существует - PullRequest
4 голосов
/ 31 мая 2019

При компиляции с 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

Как настроить IntelliJ на поведение ant и разрешить доступ к sun.awt.* пакетам?

1 Ответ

3 голосов
/ 31 мая 2019

Отключить параметр Использовать '--release' ... :

release

Подробнее см. Этот ответ .

...