Файл работает в Java 1.5, но не в Java 7 (отказано в разрешении java.io.FileNotFoundException)

У меня есть файл, к которому я пытаюсь получить доступ. Когда я получил к нему доступ в Java 1.5, все было в порядке. С тех пор я обновился до Java 7, и теперь я получаю ошибку java.io.FileNotFoundException Permission Denied.

java.io.FileNotFoundException: /folder/test.xml (Permission denied)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:212)
at java.io.FileOutputStream.<init>(FileOutputStream.java:104)
at SerializeUtil.write(Unknown Source)

На самом деле он пытается записать файл с помощью XMLEncoder.

XMLEncoder encoder = new XMLEncoder(new BufferedOutputStream(new FileOutputStream(filename)));
encoder.writeObject(object);
encoder.close();

person htkhtk    schedule 26.03.2013    source источник
comment
Есть ли процесс, блокирующий ваш файл?   -  person jlordo    schedule 27.03.2013
comment
А вы абсолютно уверены, что у вас есть права на запись в папку?   -  person Makoto    schedule 27.03.2013
comment
какой у тебя формат имени файла?   -  person Hussein Zawawi    schedule 27.03.2013
comment
Я не думаю, что поведение java API изменилось бы (после такой большой обратной совместимости :)). Предполагая, что это точно такой же код в java 5 и java 7, я также думаю, что это может быть проблема с блокировкой.   -  person Ankit Bansal    schedule 27.03.2013
comment
Насколько я могу судить, ничего не блокируется.   -  person htkhtk    schedule 27.03.2013


Ответы (1)


Если вы используете Unix/Linux, попробуйте выполнить следующую команду под пользователем, с которым вы работаете: java $ touch /folder/test.xml

Если ваш файл находится в другом месте (например, /home/AAA/folder/test.xml), замените указанный выше путь.

Идея состоит в том, чтобы проверить, может ли ваш текущий пользователь записать файл

person user650749    schedule 26.03.2013
comment
Я не менял пользователей и не делал ничего другого. Все, что я сделал, это изменил версию Java и перестроил код. - person htkhtk; 27.03.2013
comment
удаление файла xml и разрешение приложению воссоздать его устранило проблему, но все еще оставляет вопрос, почему он работал раньше с java 1.5. - person htkhtk; 27.03.2013
comment
Я предполагаю, что ваше приложение java 1.5 блокирует файл (например, забудьте о закрытии). так что только сам может разблокировать его. Ничего общего с версией java - person user650749; 27.03.2013