2011-05-09 60 views
0

我试图从j2ee应用程序(使用Flash Builder 3,Spring,apache cxf)执行shell脚本,并在我的flex界面中获取其执行结果。如何执行一个shell脚本并从java站点获取他的结果?

问题是我的应用程序是在Windows 7站,我不知道我怎么能在远处的unix服务器上执行脚本&找回结果。

我知道,ssh apis可以帮助,但我不知道如何找回结果。

任何帮助将受到欢迎。

感谢名单

回答

1

如果您的Windows计算机上安装SSH,你应该能够像

ssh [email protected]_host ipconfig 

执行命令这将中执行ipconfig对远程主机的用户“用户”。你需要对ssh进行一些研究,以便你可以做到这一点,所以你可以不使用密码登录,但谷歌将帮助。

另外,你可以看看一个java实现ssh - jssh例如,虽然我承认我没有使用该软件包的经验。

+0

thanx for ure reply。但我可以知道,如果我需要做的是把这个cmd放在'Process p = Runtime.getRuntime()。exec(cmd);'?我也没有在我的Windows机器上安装ssh,我是否需要根据unix服务器安装特定版本? – sm1988 2011-05-09 09:58:46

+0

我认为任何ssh客户端都可能是好的,除非你的unix服务器运行的是一个非常旧的操作系统版本。在您的位置上,我认为我会调查使用纯Java的SSH库,因为它们可能会消除您的一些配置头痛 - 并且很可能使您的部署在将来也更容易。 – DaveH 2011-05-09 10:08:47

+0

你可以在有问题的Unix服务器上部署代码吗?如果是的话,你总是可以将上面的代码放在unix服务器上(例如在一个servlet中),然后通过HTTP与该servlet通信。 – DaveH 2011-05-09 10:14:09

1

要从Windows执行程序到Unix,你真的需要ssh或telnet。

SSH更安全。您可以在不运行外部进程的情况下执使用一个可用的纯Java SSH库(例如javassh.org)。

查看示例。如果你使用这个库,你的任务是微不足道的。只需调用适当的API。

0

关于我能想出的唯一合理和合理的安全答案是在两台机器上配置ssh。 * nix盒默认安装了ssh服务器。 用于Windows的腻子终端仿真带有整洁的ssh客户端命令行实用程序,称为plink,它可以以安全的方式在远程unix盒子上执行shell命令。