Ошибка Java не удалось создать временный файл для библиотеки jnidispatch - PullRequest
2 голосов
/ 28 декабря 2011

При попытке установить Java-приложение третьей части я получил эту ошибку. Не удалось создать временный файл для библиотеки jnidispatch: java.io.IOException: Файловая система только для чтения.

java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.rzo.yajsw.boot.WrapperExeBooter.main(WrapperExeBooter.java:35)
Caused by: java.lang.Error: Failed to create temporary file for jnidispatch library: java.io.IOException: Read-only file system
        at com.sun.jna.Native.loadNativeLibraryFromJar(Native.java:751)
        at com.sun.jna.Native.loadNativeLibrary(Native.java:685)
        at com.sun.jna.Native.<clinit>(Native.java:109)
        at com.sun.jna.Pointer.<clinit>(Pointer.java:42)
        at com.sun.jna.PointerType.<init>(PointerType.java:25)
        at com.sun.jna.ptr.ByReference.<init>(ByReference.java:32)
        at com.sun.jna.ptr.IntByReference.<init>(IntByReference.java:22)
        at com.sun.jna.ptr.IntByReference.<init>(IntByReference.java:18)
        at org.rzo.yajsw.os.posix.PosixProcess.<init>(PosixProcess.java:43)
        at org.rzo.yajsw.os.posix.OperatingSystemPosix.setWorkingDir(OperatingSystemPosix.java:10)
        at org.rzo.yajsw.WrapperExe.main(WrapperExe.java:163)
        ... 5 more

Ответы [ 5 ]

12 голосов
/ 13 июля 2012

У меня была точно такая же проблема; Программа работала отлично в течение нескольких месяцев, и вдруг эта ошибка. Некоторая быстрая отладка с помощью strace показывает, что он пытается открыть:

/tmp/jna/jna6858279656331549999.tmp

Естественно, что / tmp / jna принадлежал другому пользователю, и в моем случае это была неделя. Я даже не могу начать объяснять, как программа работала должным образом весь день, а затем внезапно потерпеть неудачу, потому что не может записать в этот каталог.

Во всяком случае, я sudo chmod'd / tmp / jna на 777, и теперь все в порядке. Пойди разберись.

3 голосов
/ 28 декабря 2011

Итак, это приложение пытается записать во временный каталог. Где это ? Это зависит от ОС. Я не знаю, с какой ОС вы работаете, но вы можете найти ее, используя примеры здесь .

Обратите внимание, что вы можете использовать это системное свойство (java.io.tmpdir) для предоставления нового местоположения временного каталога, если вы не можете изменить разрешения того, куда это приложение пишет.

0 голосов
/ 27 января 2016

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

ошибка создания файла может быть вызвана следующими причинами:
1. разрешение пользователя / ов (наследование улажено).
2. Поврежденный файл.
3. файл, к которому одновременно обращается другое приложение.
4. файл заблокирован антивирусом / антивирусом.

странно, мой антивирус обнаружил файлы adb, avd и jndispatch.dll как нечистые файлы.

Мне пришлось восстановить их из хранилища AVG. настроить AVG на игнорирование (добавление папки в список исключений) необходимой папки.

если у вас нет антивируса и вы все еще сталкиваетесь с этой проблемой, помните, что в Windows 7 и выше имеется встроенный «защитник Windows». посмотрим, делает ли этот парень то же самое. поместите вашу папку в список исключений антивируса, так как поставщику доверяют во всем мире.

этот же ответ будет означать " Ошибка при запуске AVD с процессором AMD ".
у меня не было достаточно репутации, чтобы ответить на этот вопрос там и там.

0 голосов
/ 06 мая 2014

Вероятно, у вас будет другое приложение, использующее тот же каталог / tmn / jna, чтобы сменить владельца. В моем случае это был Гудзоновский CI.

Вы можете проверить, какое приложение владеет в '/ tmp / jna', набрав 'ls -l /tmp'.

.

Chmod / tmp / jna для предоставления доступа кому-либо (или вашему текущему пользователю), и все вернется в нормальное русло.

0 голосов
/ 28 декабря 2011

У вас нет прав на запись файла в это место

...