Как использовать jaxp 3 с jdk 1.6? - PullRequest
1 голос
/ 13 мая 2010

Я пытаюсь перенести приложение с jdk 1.5 на jdk 1.6 без внесения каких-либо изменений, видимых конечному пользователю. Выходные данные приложения - это xml, сгенерированный с использованием jaxp, который является частью библиотек jdk. Поскольку версии jaxp отличаются в jdk 1.5 и 1.6, результирующий xml выглядит по-разному в каждой версии.

Пример: DatatypeFatory.newInstance().newDuration(60) производит «PT2H17M0.000S» в jdk 1.5 и «P0Y0M0DT2H17M0.000S» в jdk 1.6. Оба варианта верны, но я хочу избежать видимых изменений.

Классы, такие как DatatypeFactory, имеют механизм, который позволяет указать, какую реализацию следует использовать, но он основан на указании полного имени класса. Поэтому теоретически я мог бы скачать jaxp jar с той же версией, которая используется в jdk 1.5, и позволить приложению использовать их. К сожалению, имена пакетов и классов одинаковы в обеих версиях, поэтому мне пришлось бы как-то сказать java загружать классы из jar, а не из jdk. Я пытался поставить банки jaxp в начале пути к классам, но это не помогло.

Можно ли сказать java загружать классы из внешних jar, а не из jdk библиотек? Могу ли я решить эту проблему любым другим способом?

Заранее спасибо

1 Ответ

0 голосов
/ 10 декабря 2012

К сожалению, имена пакетов и классов одинаковы в обеих версиях, поэтому мне придется как-то сказать java загружать классы из jar, а не из jdk.

все решает classLoader. 1. Вы не можете, кроме JDK lib. 2. ваш третий кувшин имеет то же имя и имя класса.

Вы можете сделать что-то еще, переписать с помощью packageName третьего jar и перекомпилировать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...