当 运行 Kshell 脚本时,进程构建器 returns 退出代码 127
Process builder returns exit code 127 when running a Kshell script
我正在尝试通过 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
知道这里出了什么问题吗?
放弃了 procesbuilder 并尝试了 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);
希望对以后的人有所帮助。
ProcessBuilder 这样做是因为它没有在 PATH 上找到您的脚本。只需使用 ProcessBuilder 执行命令 echo $PATH。您会看到 'its' PATH 不同。
我正在尝试通过 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
知道这里出了什么问题吗?
放弃了 procesbuilder 并尝试了 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);
希望对以后的人有所帮助。
ProcessBuilder 这样做是因为它没有在 PATH 上找到您的脚本。只需使用 ProcessBuilder 执行命令 echo $PATH。您会看到 'its' PATH 不同。