我正在尝试通过 Java 进程生成器运行 Kshell 脚本。当在服务器上运行时,脚本本身可以完美运行。但是,当我通过进程生成器运行它时,我收到退出代码 127 - command not found
。
代码:
ProcessBuilder procBuilder = new ProcessBuilder(command);
procBuilder.directory(new File(codeDir));
proc = procBuilder.start();
errorCode = proc.waitFor();
return errorCode;
我的命令如下:
[/bin/ksh, -c, myscript.ksh, 20150714]
我使用以下命令在服务器上运行脚本:
ksh -x myscript.ksh 20150714
知道这里出了什么问题吗?
最佳答案
放弃了 processbuilder 并尝试了 common-exec它工作得很好。这是我更新的代码:
CommandLine cmdLine = CommandLine.parse(command);
for (String comm : cmd)
{
cmdLine.addArgument(comm);
}
DefaultExecutor exec = new DefaultExecutor();
exec.setExitValue(0);
exec.setWorkingDirectory(new File(codeDir));
exitCode = exec.execute(cmdLine);
希望它对将来的人有所帮助。
关于java - 运行 Kshell 脚本时,进程构建器返回退出代码 127,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31462091/