![java 应用程序无法执行存储在 /tmp 中的文件](https://linux22.com/image/1589463/java%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%97%A0%E6%B3%95%E6%89%A7%E8%A1%8C%E5%AD%98%E5%82%A8%E5%9C%A8%20%2Ftmp%20%E4%B8%AD%E7%9A%84%E6%96%87%E4%BB%B6.png)
我在使用 Java 程序时遇到了麻烦,该程序尝试将文件写入/tmp
Ubuntu 18.10 上的目录。它遇到错误,因为它无法写入所需的临时文件。它因错误 2 而失败:没有这样的文件或目录。权限/tmp
是默认的。
我读到过这不是 Windows 或 Mac OS 的问题,因为它不会受到这样的限制。
我该如何解决这个问题?我应该以不同的方式配置我的系统(首选)还是修改代码?
编辑:
有问题的文件实际上已经创建,权限是
-rwxrwxr-x 1 lucas lucas 51263 Apr 26 11:12 monalisa13902330713449850714bin*
但是,程序无法找到它:
monalisa.tools.tinv.TInvariantCalculator$InvokeProcessException: java.io.IOException: Cannot run program "/tmp/monalisa13902330713449850714bin" (in directory "/tmp"): error=2, No such file or directory
目录/tmp
正确确定为File(System.getProperty("java.io.tmpdir"));
该文件在此处创建:
toolFile = FileUtils.extractResource("tinv_unix", "monalisa", "bin");
public static File extractResource(URL resource, String prefix,
String suffix) throws IOException {
LOGGER.debug("Extracting resource '" + resource.toString() + "'");
File file = File.createTempFile(prefix, suffix);
file.setExecutable(true, false);
运行exec /tmp/[file name]
返回相同的错误。