зависимость не разрешена: классу DocumentBuilderFactory нужна зависимость javax.xml.parsers в openJDK 11 - PullRequest
1 голос
/ 29 апреля 2019

Заранее спасибо, кто мне поможет, скорее проголосуйте за вопрос:)

История Я использовал JDK8 и IVY в качестве менеджера зависимостей в ANT Builder. все было отлично. Мой DocumentBuilderFactory класс может найти javax.xml.parsers зависимость.

Проблема: Теперь я перешел на Open JDK11, теперь DocumentBuilderFactory не может найти зависимость javax.xml.parsers.

Eclipse дает мне советы по импорту, но когда я импортирую, ничего не происходит, и уже импорт говорит , импорт javax.xml.parsers.DocumentBuilder не может быть разрешен как это: Import says dependency not resolved

Что мне нужно в качестве решения: Мне нужна IVY зависимость для Open JDK 11 для поддержки javax.xml.parsers для DocumentBuilderFactory

screenshot my class need dependency :(

Ответы [ 2 ]

1 голос
/ 13 июля 2019

Я тоже столкнулся с этой проблемой,

Это потому, что DocumentBuilderFactory доступно и в других пакетах.

Причина Иногда dependencies принимают transitive dependencies вместе с этим себя

Например Класс XYZ доступен также в jarA, JarB и JarC. Эта проблема не была видна до Java8, но после Java9 выпуска, Java9 выпуска с Java Platform Module System .

Эта система модулей ограничивается наличием нескольких классов в разных банках с одинаковыми именами, я не говорю, что у нас не может быть одинаковых имен в разных классах, для этого вам нужно написать module-info.java и преобразовать ваше приложение в Module System.

Если вы не планируете переносить ваше приложение в Module System, тогда вы можете сделать это, удалить зависимости, которые не требуются для ваших приложений и имеют классы с одинаковыми именами.

Как и для вашей проблемы, что вы можете сделать

  • Открыть проект в eclipse
  • Нажмите ctrl + shit + T>
  • Откроется диалоговое окно> введите имя вашего класса, которое создает проблему,>
  • Диалог покажет пакеты, которые содержат одинаковые class, сейчас узнать пакет, который не требуется или переходное свойство из-за другой зависимости>
  • Right click на имя пакета и нажмите show in Package Explorer>
  • Теперь у вас будет jar имя, remove или exclude, которое jar from your dependency manager, Like Gradle or Maven Or Ivy`

Это поможет вам, потому что это помогло мне тоже.

Я знаю длительный процесс, но твоя любовь - твоя любовь, ты должен поддерживать это.

joy Наслаждайтесь ?

1 голос
/ 02 мая 2019

javax.xml извлекается как отдельный модуль в Java 9.

В опции Java build path вашего проекта перейдите на вкладку Libraries и измените JDK с Classpath на ModulePath, и это должно решить эту проблему.

Дайте мне знать, помогло ли это.

...