Ошибки компиляции при попытке собрать Apache Xerces в Java
Я пытаюсь собрать Apache Xerxes 2.11.0 в Java и сталкиваюсь со следующими ошибками компиляции:
[xjavac] c:\Program Files\Java\libraries\xerces-2_11_0\build\src\org\apache\html\dom\HTMLFrameElementImpl.java:28: error: HTMLFrameElementImpl is not abstract and does not override abstract method getContentDocument() in HTMLFrameElement
[xjavac] public class HTMLFrameElementImpl
[xjavac] ^
[xjavac] c:\Program Files\Java\libraries\xerces-2_11_0\build\src\org\apache\html\dom\HTMLIFrameElementImpl.java:28: error: HTMLIFrameElementImpl is not abstract and does not override abstract method getContentDocument() in HTMLIFrameElement
[xjavac] public class HTMLIFrameElementImpl
[xjavac] ^
[xjavac] c:\Program Files\Java\libraries\xerces-2_11_0\build\src\org\apache\html\dom\HTMLObjectElementImpl.java:28: error: HTMLObjectElementImpl is not abstract and does not override abstract method getContentDocument() in HTMLObjectElement
[xjavac] public class HTMLObjectElementImpl
[xjavac] ^
Любые мысли о том, что я могу упустить или сделать неправильно, или лучше, где-нибудь я могу просто скачать предварительно скомпилированный jar для этой библиотеки? ("Двоичный дистрибутив", доступный на странице загрузок, кажется, на самом деле просто документация и примеры.)
2 ответа
Я нашел банки здесь:
http://search.maven.org/#artifactdetails|xerces|xercesImpl|2.11.0|jar
Я не смог заставить m2e загрузить их в eclipse, но я смог использовать подход AddExternalJars..., чтобы добавить их (основной jar плюс исходный и javadoc jars)
Пожалуйста, смотрите следующую ссылку, чтобы решить проблему компиляции: XERCESJ-1621 xerces2 не собирается с Mac OS 10.9 и JDK 1.7
Основная идея:
Проблема в том, что Xerces поддерживает только HTML-спецификацию DOM уровня 1. Однако установленный в вашей системе JDK версии 1.7 соответствует спецификации DOM Level 3. Недавно добавленные методы из спецификации уровня 2 и уровня 3 в JDK 1.5 и более поздних версиях не реализованы в Xerces. Поэтому одним из вариантов является создание кода с более старой версией, то есть JDK 1.4 и т. Д., Или обходной путь исправления: добавить в исходный код фиктивные реализации методов, чтобы вы не получали ошибок за их неисполнение.