【发布时间】:2014-12-17 04:43:23
【问题描述】:
我正在从 Java 运行一个 shell 脚本。它大部分时间都有效,但偶尔会引发异常“权限被拒绝”
PrintWriter writer = new PrintWriter(folder + cmdFile, "UTF-8");
writer.println("#!/bin/bash");
writer.println(commandLine.toString());
writer.close();
Process processUtil = Runtime.getRuntime().exec("/bin/chmod +x " + folder + cmdFile );
Process process = Runtime.getRuntime().exec(folder + "./" + cmdFile);
try {
int processResponseCode = processUtil.waitFor();
processUtil = Runtime.getRuntime().exec("sleep 0.1s");
processResponseCode = processUtil.waitFor();
processResponseCode = process.waitFor();
processUtil = Runtime.getRuntime().exec(" rm " + folder + cmdFile);
processResponseCode = processUtil.waitFor();
异常
java.io.IOException: Cannot run program "/tmp/./cmd755784": error=13, Permission denied
知道是什么原因造成的吗?
【问题讨论】:
-
它有正确的运行权限吗?
-
如您在代码中看到的,我添加了该权限
-
对我来说应该只是 chmod +x cmdFile 文件夹
-
您是否有理由使用嵌入在 java 中的 shell 命令而不是使用内置的
File对象?