Файл не сохраняется когда он .jar

385
28 января 2017, 09:33

Хотел поработать с файлами, программка работает в IntellijIdea, но когда создаю .jar файл он не сохраняет изменение на файл, выдает ошибку. Вот код:

public void saveMarshall(Group currentGroup) {
    try {
        File file = new File(new URL(getClass().getResource("/resources/office_list.xml").toString()).getPath());
        JAXBContext context = JAXBContext.newInstance(Group.class);
        Marshaller marshaller = context.createMarshaller();
        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
        marshaller.marshal(currentGroup, file);
    } catch (JAXBException exception) {
        Logger.getLogger(Application.class.getName()).
                log(Level.SEVERE, "saveMarshall threw JAXBException", exception);
    } catch (MalformedURLException e) {
        e.printStackTrace();
    }
}

Расположение .xml файла:

Выдает FileNotFoundException или вот это:

янв 27, 2017 1:10:26 AM com.google.javafx.objects.Application saveMarshall
SEVERE: saveMarshall threw JAXBException
javax.xml.bind.JAXBException
 - with linked exception:
[java.io.FileNotFoundException:        file:\D:\IdeaProject\JavaFXInstaBot\out\artifacts\JavaFX\JavaFXWorkXMLFile.jar!\resources\office_list.xml (Синтаксическая ошибка в имени файла, имени папки или метке тома)]
at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:108)
at com.google.javafx.objects.Application.saveMarshall(Application.java:94)
Answer 1

При создания джарника Windows немного по-другому воспринимает расположение файлов в вашем случае посоветую вам попробовать сделать File file = new File(System.getProperty("user.dir") + "/resources/office_list.xml");. Сам сталкивался с такой проблемой))) Возможна ещё одна причина: внутри ваш xml файл ссылается на пустой файл

READ ALSO
Java. Где располагается объект hash таблицы для HashMap?

Java. Где располагается объект hash таблицы для HashMap?

Пытаюсь разобраться с устройством hash таблиц на примере взаимодействия с HashMap но никак не могу найти сам массив-таблицуГде она находится?

347
Обобщенный метод необобщенного класса

Обобщенный метод необобщенного класса

В обобщенном классе параметр типа реализует возможность формирования обобщенных методов относительно этого параметра типаВозможно ли формирование...

377
Удаление элемента из ArrayList

Удаление элемента из ArrayList

Я хочу использовать Iterator, чтобы удалить элементПримерно так:

451
Найти хэш-таблицу в HashMap

Найти хэш-таблицу в HashMap

Начав исследовать такое явление как hash-таблица, я понял, что это некий массив, каждая ячейка которого хранит список, который параметризован...

311