Пакет доступен из более чем одного модуля: <безымянный>
При попытке зарегистрировать MBean в консоли JMX я получаю следующее сообщение об ошибке:
The package javax.management is accessible from more than one module: <unnamed>, java.management
Я использую Eclipse и у меня нет module-info.java
файл в моей структуре проекта.
Ошибка исчезает, когда я комментирую свою зависимость для Java EE API, но javax.management
Пакет не является частью JAR.
5 ответов
У меня возникла аналогичная проблема при обновлении с java 8 до java 11. Следующие шаги мне помогли,
- Щелкните правой кнопкой мыши проект Eclipse> Свойства> Путь сборки Java.
- В библиотеках вкладки, удалить весь внешний опарник под ModulePath и добавить их в Classpath (вы можете просто выбрать все банки и перетащить их под Classpath)
- Нажмите Применить и закрыть
Примечание. Системная библиотека JRE останется в папке Modulepath.
Версия Eclipse: 2019-09
Если вы столкнулись с той же проблемой в Java 11, просто удалите зависимость модуля в JRE 11 (java.xml, java.xml.crypto).
Следуйте шагу ниже, щелкните правой кнопкой мыши проект -> путь сборки -> Зависимость модуля -> Просто удалите два модуля из java11, это помогает.
Лучшее решение этой проблемы - найти библиотеку, которая вызывает проблему дублирования, поскольку она предоставляет тот же пакет, что и другой модуль в приложении. Просто просмотрите зависимости вашего проекта, как системные библиотеки JRE, так и внешние библиотеки проекта, и изучите пакеты в каждой библиотеке.
Когда вы найдете эту библиотеку, просто исключите ее из сборки.
Скажем, это библиотека с такой сигнатурой зависимости:
group: 'lib.group', name: 'lib-name', version: notImportant
Все, что вам нужно сделать, это исключить его из сборки следующим образом:
dependencies {
...
configurations {
compile.exclude group: 'lib.group', module: 'lib-name'
}
...
}
Я ответил на аналогичный вопрос здесь ...
Вы используете Java-1.8? Поскольку это пакет по умолчанию, нет необходимости добавлять зависимость для этого.
Я использовал java11, после того, как переключение обратно на java 8 помогло мне решить эти проблемы в пути сборки java.