Java错误无法为jnidispatch库创建临时文件

use*_*306 2 java jna

在尝试安装第三方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
Run Code Online (Sandbox Code Playgroud)

小智 12

我刚刚遇到了同样的问题; 该程序已经工作好几个月,突然出现这个错误.使用strace进行的一些快速调试表明它正在尝试打开:

/tmp/jna/jna6858279656331549999.tmp
Run Code Online (Sandbox Code Playgroud)

当然/ tmp/jna是由另一个用户拥有的,在我的情况下是一周.我甚至无法开始解释程序如何整天正常工作然后突然失败,因为它无法写入此目录.

无论如何,我sumod chmod'd/tmp/jna到777,现在一切都很好.去搞清楚.