, в каком файле .jar есть javax.xml.stream. *?

17

У меня снова проблемы с моим Mac, работающим на Java 1.5 .... где я могу получить файл .jar с javax.xml.stream.XMLInputFactory? Я хочу использовать StAX, но не знаю, как правильно настроить его.

Я не могу получить эту настройку. Теперь я загрузил jaxp-api.jar, jsr173_1.0_api.jar, sjsxp.jar, stax-api-1.0.1.jar, stax2-api-3.0.1.jar и woodstox-core-asl-4.0. 5.jar; поместите их все в мой каталог java / lib / ext, убедитесь, что они находятся на моем пути построения eclipse, удалили расширенный атрибут Mac com.apple.quarantine, сделал «chmod a + x» в файлах .jar, а я все равно получите следующую ошибку: import javax.xml.stream.XMLInputFactory;

  

Ограничение доступа: тип   XMLInputFactory недоступен из-за   ограничить требуемую библиотеку   /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext/jsr173_1.0_api.jar

Что мне нужно сделать?

    
задан Jason S 23.08.2009 в 20:53
источник

2 ответа

25

StAX не является частью Java 5; вы найдете его в Java 6 . Для Java 5 вам нужно загрузить реализацию StAX и поместить ее в путь к классам.

Woodstox - одна из таких реализаций. Вы также можете использовать Sun Java StAX XML-процессор , который пробился в Java SE 6.

Если я ошибаюсь, обе эти реализации в конечном итоге будут использовать jsr173_api.jar , где вы найдете пакет javax.xml.stream.

Update:

В документации Woodstox вы можете загрузить банку инструментов StAX 1.0.1 (требуется когда вы используете стандартный StAX API); банку StAX2 API в Woodstox не будет содержать пакет javax.xml.stream (хотя вам понадобятся оба JAR во время выполнения). Реализация Sun зависит от проекта stax-utils .

Обновление 2

Установка JSXP

Область загружаемых файлов SJSXP выглядит немного странно, поскольку у вас есть файл класса, а не для сборки JAR. Тем не менее, все, что необходимо для получения JAR SJSXP, заключается в том, чтобы выполнить файл класса, который распаковывает дистрибутив.

Получение JA API-интерфейса StAX

Ящик API StAX (jsr173_api.jar или тому подобное) можно получить из проекта утилиты StAX. Он должен находиться в том же каталоге, что и jsxp jar.

Использование JAR в Eclipse

Нет необходимости добавлять JAR в lib / ext JDK. Достаточно добавить два JAR в путь сборки проекта.

    
ответ дан Vineet Reynolds 23.08.2009 в 21:24
источник
  • OK Я пытаюсь справиться с этим спокойно и не кричать. Я загрузил SJSXP и поместил оба файла sjsxp.jar и jsr173_1.0_api.jar в каталог java / lib / ext, но Eclipse отказывается понять, что есть javax.xml.stream.XMLInputFactory в classpath> :( help! –  Jason S 23.08.2009 в 22:57
  • Вы уверены, что Eclipse использует ту же JRE, что и ожидаете? Ввод материала в lib / ext немного хрупкий. Это должно быть хорошо на стандартном пути класса. –  Tom Hawtin - tackline 23.08.2009 в 23:35
  • @Tom H: хорошая точка. Я проверю. –  Jason S 23.08.2009 в 23:37
  • Это было исправлено, когда я положил его в директорию lib из локального проекта! Благодаря!!! –  Jason S 23.08.2009 в 23:40
  • Обновлен ответ, чтобы указать, что нужно сделать, чтобы включить SJSXP & JSR 173 API в Eclipse. Протестировано на примере SJSXP (пример cursor.CursorParse). –  Vineet Reynolds 23.08.2009 в 23:41
17

Могу ли я указать вам на findjar.com , который позволяет вам ввести имя класса и определить, какая из флагов требуется.

например. XMLInputFactory дает

jsr173_1.0_api.jar
jsr173_api.jar
stax-api-1.0.1.jar
stax-api-1.0.1.jar
stax-api-1.0.jar
groovysoap-all-jsr06-0.1.jar
    
ответ дан Brian Agnew 23.08.2009 в 21:23
источник
  • +1 для ссылки findjar, аккуратный инструмент –  Jason S 23.08.2009 в 21:47
  • Ницца. Спасибо. –  Swifty McSwifterton 26.05.2012 в 18:44
  • действительно, findjar - бесценный инструмент, который использовал его в прошлом с JavaEE и продуктом IBM WebSphere, чтобы найти, где какой-то класс был плохо документирован –  George Birbilis 31.12.2015 в 19:36