Java 11 ошибка компиляции: пакет xxx существует в другом модуле - PullRequest
1 голос
/ 13 февраля 2020

В моем проекте есть класс. Этот класс в пакете javax.swing расширяет javax.swing.JOptionPane, потому что я хочу использовать некоторые защищенные методы JOptionPane.

Когда компилятор JDK 8, он работает нормально. Я обновляю версию JDK до 11, а затем у меня появляется ошибка компиляции: пакет «javax.swing» существует в другом модуле: java .desktop.

Моя IDE - идея Intellij. Я открыл Настройки - Сборка, Выполнение, Развертывание - Java Компилятор и добавил пункт «Переопределить параметры компилятора перед модулем». Модуль - это мой проект. Параметры компиляции:

--patch-module java.desktop=src -d mypatches/java.desktop/src/java.desktop/javax/swing/Top.java

Но это не работает.

Моё дерево проектов - 'GreatProject / src / javax / swing / Top. java'.

Что означает «sr c -d»?

Что такое «--patch-module»?

1 Ответ

0 голосов
/ 14 февраля 2020

Начиная с версии Java 9, полная поддержка проекта Jigsaw была добавлена ​​для обеспечения модульности проекта. Эта система может вызвать проблемы в процессе компиляции, если в пакетах присутствуют одинаковые имена.

  • Пожалуйста, отметьте этот topi c о процессе обновления модуля для адаптируйте свой модуль для javax.swing пакета.

  • Также вы можете попробовать использовать Reflection API для получения элементов из класса 'JOptionPane' .

...