Пакет доступен из более чем одного модуля: <безымянный>

При попытке зарегистрировать 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.

Другие вопросы по тегам