2017-01-19 4 views
0

Это структура моего проекта в IntellijIDEA.xml не упакован, когда я построю банку

Structure

Когда я создаю файл моей баночки это не пакет файла characters.xml.

Document doc = builder.parse("characters.xml"); 

Вот как я исхожу из кода. Очевидно, здесь есть ошибка, но я не могу понять, куда ее поместить, и какой путь я должен писать.

+0

Не помещайте изображения текста в свой вопрос. Скопируйте и вставьте текст напрямую. Если это код, отступьте его на четыре пробела, чтобы он появился в блоке кода. – VGR

+0

а как насчет структуры? который я не могу просто вставить его в виде текста? – Syarx

+0

Структура в порядке, как изображение. Текст будет лучше, если вы знаете правильные символы Юникода (например, «▼», «▶» и «└»), и если вы готовы потратить время на его ввод. – VGR

ответ

0

В documentation for DocumentBuilder.parse(String) состоянии:

PARSE содержания данного URI в качестве документа XML и возвращает новый объект DOM Document.

"characters.xml" технически допустимый URI, но это относительный URI, и нет никакой базы URI, по которому можно решить.

Чтобы прочитать файл внутри .jar, вы используете Class.getResource или Class.getResourceAsStream. Примером может быть:

Document doc; 
try (InputStream stream = Controller.class.getResourceAsStream("characters.xml")) { 
    doc = builder.parse(stream); 
} 

В качестве альтернативы, вы можете преобразовать ресурс в URI:

Document doc = builder.parse(
    Controller.class.getResource("characters.xml").toString()); 

Обратите внимание, что оба Class.getResource и Class.getResourceAsStream возвращают нулевое значение, если аргумент не является путь существующий вход в банку. Вам нужно будет переместить characters.xml в каталог src \ sample. Вы можете проверить, что файл .jar содержит characters.xml, изучив его в области «Файлы» вашей среды IDE.

+0

спасибо, что это работает! – Syarx

Смежные вопросы