Java Process builder在运行Kshell脚本时返回退出代码127

Java Process builder在运行Kshell脚本时返回退出代码127,java,process,runtime.exec,processbuilder,Java,Process,Runtime.exec,Processbuilder,我正在尝试通过Java process builder运行Kshell脚本。在服务器上运行时,脚本本身工作正常。然而,当我通过process builder运行它时,我得到了退出代码127-未找到命令 代码: 我的命令看起来像: [/bin/ksh, -c, myscript.ksh, 20150714] 我使用以下命令在服务器上自行运行脚本: ksh -x myscript.ksh 20150714 你知道这里出了什么问题吗?放弃了ProceBuilder,尝试了一下,效果非常好。这是我的

我正在尝试通过Java process builder运行Kshell脚本。在服务器上运行时,脚本本身工作正常。然而,当我通过process builder运行它时,我得到了退出代码
127-未找到命令

代码:

我的命令看起来像:

[/bin/ksh, -c, myscript.ksh, 20150714]
我使用以下命令在服务器上自行运行脚本:

ksh -x myscript.ksh 20150714

你知道这里出了什么问题吗?

放弃了ProceBuilder,尝试了一下,效果非常好。这是我的更新代码:

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这样做是因为它在路径上找不到您的脚本。只需使用ProcessBuilder执行echo$PATH命令。您将看到“its”路径不同。

您确定
myscript.ksh
codeDir
中吗?是的,我确实在那里有脚本。我正在考虑使用common exec。希望它能解决这些问题。你肯定
ksh
/bin/ksh
吗?是的,我查过了。它就在那里,不得不做这些事真是太痛苦了。所以我尝试了common exec,第一次就成功了。真是松了一口气。谢谢你的帮助,tho,非常感谢……)我只有一台服务器有完全相同的问题。。。不知道为什么。使用common exec不是一个选项,因为它缺少我需要的高级功能…我有过与process builder类似的经验,并开始使用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);