java 应用程序无法执行存储在 /tmp 中的文件

java 应用程序无法执行存储在 /tmp 中的文件

我在使用 Java 程序时遇到了麻烦,该程序尝试将文件写入/tmpUbuntu 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]返回相同的错误。

相关内容