我试图从j2ee应用程序(使用Flash Builder 3,Spring,apache cxf)执行shell脚本,并在我的flex界面中获取其执行结果。如何执行一个shell脚本并从java站点获取他的结果?
问题是我的应用程序是在Windows 7站,我不知道我怎么能在远处的unix服务器上执行脚本&找回结果。
我知道,ssh apis可以帮助,但我不知道如何找回结果。
任何帮助将受到欢迎。
感谢名单
我试图从j2ee应用程序(使用Flash Builder 3,Spring,apache cxf)执行shell脚本,并在我的flex界面中获取其执行结果。如何执行一个shell脚本并从java站点获取他的结果?
问题是我的应用程序是在Windows 7站,我不知道我怎么能在远处的unix服务器上执行脚本&找回结果。
我知道,ssh apis可以帮助,但我不知道如何找回结果。
任何帮助将受到欢迎。
感谢名单
如果您的Windows计算机上安装SSH,你应该能够像
ssh [email protected]_host ipconfig
执行命令这将中执行ipconfig对远程主机的用户“用户”。你需要对ssh进行一些研究,以便你可以做到这一点,所以你可以不使用密码登录,但谷歌将帮助。
另外,你可以看看一个java实现ssh - jssh例如,虽然我承认我没有使用该软件包的经验。
要从Windows执行程序到Unix,你真的需要ssh或telnet。
SSH更安全。您可以在不运行外部进程的情况下执使用一个可用的纯Java SSH库(例如javassh.org)。
查看示例。如果你使用这个库,你的任务是微不足道的。只需调用适当的API。
关于我能想出的唯一合理和合理的安全答案是在两台机器上配置ssh。 * nix盒默认安装了ssh服务器。 用于Windows的腻子终端仿真带有整洁的ssh客户端命令行实用程序,称为plink,它可以以安全的方式在远程unix盒子上执行shell命令。
thanx for ure reply。但我可以知道,如果我需要做的是把这个cmd放在'Process p = Runtime.getRuntime()。exec(cmd);'?我也没有在我的Windows机器上安装ssh,我是否需要根据unix服务器安装特定版本? – sm1988 2011-05-09 09:58:46
我认为任何ssh客户端都可能是好的,除非你的unix服务器运行的是一个非常旧的操作系统版本。在您的位置上,我认为我会调查使用纯Java的SSH库,因为它们可能会消除您的一些配置头痛 - 并且很可能使您的部署在将来也更容易。 – DaveH 2011-05-09 10:08:47
你可以在有问题的Unix服务器上部署代码吗?如果是的话,你总是可以将上面的代码放在unix服务器上(例如在一个servlet中),然后通过HTTP与该servlet通信。 – DaveH 2011-05-09 10:14:09