Я пытаюсь перенести приложение с 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 библиотек? Могу ли я решить эту проблему любым другим способом?
Заранее спасибо