Может ли Xerces Java Parser загрузить Resource из ClassPath и запустить его с исполняемым файлом Jar? - PullRequest
1 голос
/ 20 января 2011

Я хочу проверить файл XML на файл схемы xs. Теперь я предоставляю XML-файл в качестве аргумента командной строки. и мне нужно сохранить мой файл схемы внутри моего classpath.

Для этого я использовал парсер Xerces (2_11_0) для Java

Я сохранил файл схемы внутри пакета и добавил эту папку в мой путь к классам.

String SCHEMA = this.getClass().getResource(SCHEMA_NAME).getFile();
parser.setProperty("http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation", SCHEMA);

Когда я запускаю код внутри eclipse, он работает как шарм, но проблема возникает, когда я экспортирую свой проект в виде исполняемого файла jar.

Я пытаюсь запустить флягу, но она не может найти файл SCHEMA.

Файл: / C: / MY_JAR / ПАКЕТ / SCHEMA_FILE.xsd

!

Может кто-нибудь сообщить мне причину, по которой это не работает из исполняемого файла jar и решение для этого?

Дайте мне знать, если потребуется дополнительная информация.

Спасибо

1 Ответ

0 голосов
/ 20 января 2011

Это потому, что URL для this.getClass().getResource(SCHEMA_NAME) теперь похож на jar:file:/C:/MY_JAR!/PACKAGE/SCHEMA_FILE.xsd. Посмотрите, будет ли работать только this.getClass().getResource(SCHEMA_NAME).toString().

...