我試圖從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