java - 运行 Kshell 脚本时,进程构建器返回退出代码 127

标签 java process runtime.exec processbuilder

我正在尝试通过 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/

相关文章:

java - 运行测试时 Ant + JUnit = ClassNotFoundExceptions?

java - 创建 ".bat"文件,运行它并从Java中删除它

java - "Cannot run program"在程序文件名中使用带有空格的 Runtime.exec 时

java方法重载继承与多态

java - bean 的空属性会被插入到 MongoDB 中吗?

ubuntu - linux-kernel 如何读取 proc/pid 文件?

process - 简单的vbs进程查询

java - 当他的流(错误和输入流)终止时,java进程是否终止?

java - Runtime.getRuntime().exec 提示时传递参数

java - 在 Mac OS X 10.6 上从 x86_64 .a 文件创建 jnilib