Зависимость не разрешена: классу DocumentBuilderFactory нужна зависимость javax.xml.parsers в openJDK 11
Заранее спасибо, кому, поможете, скорее проголосуйте за вопрос:)
История: Я использовал JDK8 и IVY в качестве менеджера зависимостей в ANT Builder. все было отлично. мой DocumentBuilderFactory
класс в состоянии найти javax.xml.parsers
зависимость.
Проблема: теперь я перешел на Open JDK11, сейчас DocumentBuilderFactory
не в состоянии найти javax.xml.parsers
зависимость.
Eclipse дает мне советы по импорту, но когда я импортирую, ничего не происходит, и уже при импорте говорится, что импорт javax.xml.parsers.DocumentBuilder не может быть разрешен следующим образом:
Что мне нужно в качестве решения: мне нужна IVY-зависимость для поддержки Open JDK 11 javax.xml.parsers
за DocumentBuilderFactory
4 ответа
javax.xml извлекается как отдельный модуль в Java 9.
В вашем проекте Java build path
вариант, перейдите к Libraries
Перейдите на вкладку и измените JDK с Classpath на ModulePath, и это должно решить эту проблему.
Дайте мне знать, если это помогло.
Я тоже столкнулся с этой проблемой,
Это было из-за 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
Gradleor
MavenOr
Плющ
Это поможет вам, потому что это помогло и мне.
Я знаю, что это длительный процесс, но это ваше приложение, ваша любовь, вы должны поддерживать это.
❤ Наслаждайтесь
Я использую Eclipse Scout v9.0, и я столкнулся с той же проблемой при переходе с Java 1.8 на 11. Я потратил часы на ее решение и наконец понял. Используя информацию, предоставленную "CatalystOne Dupinder", я обнаружил, что Java 11 имеет собственный src.jar, содержащий следующий класс:
- DocumentBuilder.java
- DocumentBuilderFactory.java
- FactoryConfigurrationErro.java
- и т.д. таким же классом, как "xml-apis" таким образом. Итак, я сделал следующее:
- исключить "xml-apis" из зависимости maven,
- настроил путь сборки модуля и на вкладке "Заказ и экспорт" нажмите "Системная библиотека JRE [JavaSE-11]"
Я только что экспортировал библиотеку jar из Java 11 в зависимости от maven.
Надеюсь, это поможет вам, ребята..
Я решил ту же проблему, выполнив следующие действия:
Я выполнил mvn dependency: tree в своем терминале
выход:
[ИНФОРМАЦИЯ] + - org.seleniumhq.selenium:selenium-server: jar: 3.8.1: компилировать [ИНФОРМАЦИЯ] | + - com.beust: jcommander: jar: 1.48: compile [ИНФОРМАЦИЯ] | + - org.apache.commons: commons-text: jar: 1.1: compile [ИНФОРМАЦИЯ] | + - commons-io: commons-io: jar: 2.6: compile [ИНФОРМАЦИЯ] | + - commons-net: commons-net: jar: 3.6: compile [ИНФОРМАЦИЯ] | + - org.w3c.css: sac: jar: 1.3: компилировать [ИНФОРМАЦИЯ] | + - net.sourceforge.cssparser: cssparser: jar: 0.9.24: компилировать [ИНФОРМАЦИЯ] | + - net.sourceforge.htmlunit: htmlunit: jar: 2.28: скомпилировать [ИНФОРМАЦИЯ] | + - net.sourceforge.htmlunit: htmlunit-core-js: jar: 2.28: compile [ИНФОРМАЦИЯ] | + - net.sourceforge.htmlunit: neko-htmlunit: jar: 2.28: compile [ИНФОРМАЦИЯ] | + - net.jcip: jcip-annotations: jar: 1.0: compile [ИНФОРМАЦИЯ] | + - org.seleniumhq.selenium: jetty-repacked: jar: 9.4.7.v20170914: compile [INFO] | + - org.eclipse.jetty:jetty-client: jar: 9.4.7.v20170914: compile [INFO] | + - org.eclipse.jetty: причал-http: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - org.eclipse.jetty:jetty-io: jar: 9.4.7.v20170914: compile [INFO] | + - org.eclipse.jetty:jetty-util: jar: 9.4.7.v20170914: compile [ИНФОРМАЦИЯ] | + - org.eclipse.jetty:jetty-xml: jar: 9.4.7.v20170914: compile [ИНФОРМАЦИЯ] | + - org.seleniumhq.selenium:htmlunit-driver: jar: 2.28: компилировать [ИНФОРМАЦИЯ] | + - javax.servlet: javax.servlet-api: jar: 3.1.0: компиляция [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-api: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-client: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-common: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - xalan: сериализатор: jar: 2.7.2: компиляция [ИНФОРМАЦИЯ] | + - xalan: xalan: jar: 2.7.2: компилировать [ИНФОРМАЦИЯ] | + - xerces: xercesImpl: jar: 2.11.0: компилировать [ИНФОРМАЦИЯ] | + - xml-apis: xml-apis: jar: 1.4.01: компиляция [ИНФОРМАЦИЯ] | - org.yaml:snakeyaml: jar: 1.15: компилировать причал: jetty-io: jar: 9.4.7.v20170914: compile [INFO] | + - org.eclipse.jetty:jetty-util: jar: 9.4.7.v20170914: compile [ИНФОРМАЦИЯ] | + - org.eclipse.jetty:jetty-xml: jar: 9.4.7.v20170914: compile [ИНФОРМАЦИЯ] | + - org.seleniumhq.selenium:htmlunit-driver: jar: 2.28: компилировать [ИНФОРМАЦИЯ] | + - javax.servlet: javax.servlet-api: jar: 3.1.0: компиляция [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-api: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-client: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-common: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - xalan: сериализатор: jar: 2.7.2: компиляция [ИНФОРМАЦИЯ] | + - xalan: xalan: jar: 2.7.2: компилировать [ИНФОРМАЦИЯ] | + - xerces: xercesImpl: jar: 2.11.0: компилировать [ИНФОРМАЦИЯ] | + - xml-apis: xml-apis: jar: 1.4.01: компиляция [ИНФОРМАЦИЯ] | - org.yaml:snakeyaml: jar: 1.15: компилировать причал: jetty-io: jar: 9.4.7.v20170914: compile [INFO] | + - org.eclipse.jetty:jetty-util: jar: 9.4.7.v20170914: compile [ИНФОРМАЦИЯ] | + - org.eclipse.jetty:jetty-xml: jar: 9.4.7.v20170914: compile [ИНФОРМАЦИЯ] | + - org.seleniumhq.selenium:htmlunit-driver: jar: 2.28: компилировать [ИНФОРМАЦИЯ] | + - javax.servlet: javax.servlet-api: jar: 3.1.0: компиляция [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-api: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-client: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-common: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - xalan: сериализатор: jar: 2.7.2: компиляция [ИНФОРМАЦИЯ] | + - xalan: xalan: jar: 2.7.2: компилировать [ИНФОРМАЦИЯ] | + - xerces: xercesImpl: jar: 2.11.0: компилировать [ИНФОРМАЦИЯ] | + - xml-apis: xml-apis: jar: 1.4.01: компиляция [ИНФОРМАЦИЯ] | - org.yaml:snakeyaml: jar: 1.15: компилировать eclipse.jetty: jetty-util: jar: 9.4.7.v20170914: скомпилировать [ИНФОРМАЦИЯ] | + - org.eclipse.jetty:jetty-xml: jar: 9.4.7.v20170914: compile [ИНФОРМАЦИЯ] | + - org.seleniumhq.selenium:htmlunit-driver: jar: 2.28: компилировать [ИНФОРМАЦИЯ] | + - javax.servlet: javax.servlet-api: jar: 3.1.0: компиляция [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-api: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-client: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-common: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - xalan: сериализатор: jar: 2.7.2: компиляция [ИНФОРМАЦИЯ] | + - xalan: xalan: jar: 2.7.2: компилировать [ИНФОРМАЦИЯ] | + - xerces: xercesImpl: jar: 2.11.0: компилировать [ИНФОРМАЦИЯ] | + - xml-apis: xml-apis: jar: 1.4.01: компиляция [ИНФОРМАЦИЯ] | - org.yaml:snakeyaml: jar: 1.15: компилировать eclipse.jetty: jetty-util: jar: 9.4.7.v20170914: скомпилировать [ИНФОРМАЦИЯ] | + - org.eclipse.jetty:jetty-xml: jar: 9.4.7.v20170914: compile [ИНФОРМАЦИЯ] | + - org.seleniumhq.selenium:htmlunit-driver: jar: 2.28: компилировать [ИНФОРМАЦИЯ] | + - javax.servlet: javax.servlet-api: jar: 3.1.0: компиляция [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-api: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-client: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-common: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - xalan: сериализатор: jar: 2.7.2: компиляция [ИНФОРМАЦИЯ] | + - xalan: xalan: jar: 2.7.2: компилировать [ИНФОРМАЦИЯ] | + - xerces: xercesImpl: jar: 2.11.0: компилировать [ИНФОРМАЦИЯ] | + - xml-apis: xml-apis: jar: 1.4.01: компилировать [ИНФОРМАЦИЯ] | - org.yaml:snakeyaml: jar: 1.15: компилировать компилировать [ИНФОРМАЦИЯ] | + - org.seleniumhq.selenium:htmlunit-driver: jar: 2.28: компилировать [ИНФОРМАЦИЯ] | + - javax.servlet: javax.servlet-api: jar: 3.1.0: компиляция [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-api: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-client: jar: 9.4.7.v20170914: скомпилировать [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-common: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - xalan: сериализатор: jar: 2.7.2: компиляция [ИНФОРМАЦИЯ] | + - xalan: xalan: jar: 2.7.2: компилировать [ИНФОРМАЦИЯ] | + - xerces: xercesImpl: jar: 2.11.0: компилировать [ИНФОРМАЦИЯ] | + - xml-apis: xml-apis: jar: 1.4.01: компиляция [ИНФОРМАЦИЯ] | - org.yaml:snakeyaml: jar: 1.15: компилировать компилировать [ИНФОРМАЦИЯ] | + - org.seleniumhq.selenium:htmlunit-driver: jar: 2.28: компилировать [ИНФОРМАЦИЯ] | + - javax.servlet: javax.servlet-api: jar: 3.1.0: компиляция [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-api: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-client: jar: 9.4.7.v20170914: скомпилировать [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-common: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - xalan: сериализатор: jar: 2.7.2: компиляция [ИНФОРМАЦИЯ] | + - xalan: xalan: jar: 2.7.2: компилировать [ИНФОРМАЦИЯ] | + - xerces: xercesImpl: jar: 2.11.0: компилировать [ИНФОРМАЦИЯ] | + - xml-apis: xml-apis: jar: 1.4.01: компиляция [ИНФОРМАЦИЯ] | - org.yaml:snakeyaml: jar: 1.15: компилировать websocket:websocket-client: jar: 9.4.7.v20170914: компиляция [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-common: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - xalan: сериализатор: jar: 2.7.2: компиляция [ИНФОРМАЦИЯ] | + - xalan: xalan: jar: 2.7.2: компилировать [ИНФОРМАЦИЯ] | + - xerces: xercesImpl: jar: 2.11.0: компилировать [ИНФОРМАЦИЯ] | + - xml-apis: xml-apis: jar: 1.4.01: компилировать [ИНФОРМАЦИЯ] | - org.yaml:snakeyaml: jar: 1.15: компилировать websocket:websocket-client: jar: 9.4.7.v20170914: компиляция [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-common: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - xalan: сериализатор: jar: 2.7.2: компиляция [ИНФОРМАЦИЯ] | + - xalan: xalan: jar: 2.7.2: компилировать [ИНФОРМАЦИЯ] | + - xerces: xercesImpl: jar: 2.11.0: компилировать [ИНФОРМАЦИЯ] | + - xml-apis: xml-apis: jar: 1.4.01: компиляция [ИНФОРМАЦИЯ] | - org.yaml:snakeyaml: jar: 1.15: компилировать
Я исключил зависимость xml-apis из org.seleniumhq.selenium:selenium-server: jar: 3.8.1:compile
org.seleniumhq.selenium селен-сервер 3.8.1 xml-apis xml-apis
3. Я обновляю проект maven (Project> maven> update project). После обновления проекта maven я решил свою проблему.