Java Hudson can';在命令行上找不到可执行文件

Java Hudson can';在命令行上找不到可执行文件,java,hudson,runtime.exec,Java,Hudson,Runtime.exec,我在哈德逊建立了我的第一份工作,我遇到了一些问题。该作业监视两个存储库,一个包含我们的DB设置文件,另一个是验证和测试DB设置文件的代码 运行的部分代码将使用psql命令行工具,使用Runtime.exec()在PostgreSQL中抛出经过验证的安装文件。这段代码在我的机器上运行得很好,但是当Hudson执行它(不同的机器)时,我得到以下错误: java.io.IOException: Cannot run program "psql": CreateProcess error=2, The

我在哈德逊建立了我的第一份工作,我遇到了一些问题。该作业监视两个存储库,一个包含我们的DB设置文件,另一个是验证和测试DB设置文件的代码

运行的部分代码将使用psql命令行工具,使用Runtime.exec()在PostgreSQL中抛出经过验证的安装文件。这段代码在我的机器上运行得很好,但是当Hudson执行它(不同的机器)时,我得到以下错误:

java.io.IOException: Cannot run program "psql": CreateProcess error=2, The system cannot find the file specified java.io.IOException:无法运行程序“psql”:CreateProcess error=2,系统找不到指定的文件 psql.exe在路径上,我可以通过在命令行中键入整个内容来执行它,Hudson在同一个地方执行代码。要传递到psql的文件存在


有什么想法吗?

我发现,当你发射哈德逊或奴隶号时,你需要把程序放在路径上。尽管有能力在哈德逊设定路径,但它似乎不起作用。您还可以将完整路径放在命令中,从安全角度来看,这确实是一个好主意

我重新启动了severlet容器,它似乎正在工作(这并不是说它找不到psql)。干杯