2011-08-03 32 views
0

我有我的java进程(在我的系统中)试图与一个远程系统(当然是2个系统连接)的/ tmp目录中的shellscript(details1.sh)对话。但我得到这个exception-IOException冒险

产生java.io.IOException:不能运行程序 “/tmp/details1.sh”:java.io.IOException异常:错误= 2,没有这样的文件或目录

我已经将权限更改为777也..

但我无法弄清楚如何通过这一个。 任何想法?

+1

“2系统连接”是什么意思? IOException接口告诉你在你的本地'/ tmp'中找不到'details1.sh'。如果远程系统的根('/')挂载在'/ mount/remote_sys'中,则应该运行'/ mount/remote_sys/tmp/details1.sh'。 – jfg956

回答

1

您应该直接调用shell(例如/bin/bash),传递脚本作为文件名执行。

编辑:根据意见,这可能不是问题 - 但它肯定是我第一次尝试。

另一个编辑:你似乎试图运行/tmp/details1.sh,但你说这是在远程系统的/tmp目录。很明显,如果你试图运行/tmp/details1.sh它会查看本地/tmp目录......你如何期待它知道远程系统?

+0

在C和Linux上,stdlib的''''函数使用'/ bin/sh'来调用命令。当然,Java并没有像使用'Runtime.exec'运行命令那样具体,但我希望和C.一样。 – jfg956

+0

@jfgagne:我不确定我会有任何期望,说实话......但我认为这至少是值得尝试的。 –

+0

@jfgagne你没有*证明* Java调用system()。实际上它调用了exec()系列中的一个。就像system()一样。 – EJP