2012-07-22 46 views
0

我想知道,如果以下是可能的:Java應用程序從不同的服務器執行shell文件

我要創建從不同的服務器上運行.SH文件的Java應用程序,我有我的類來執行殼,隨着運行時間和過程,它從我的電腦運行.SH文件,事情現在是,我想知道,如果不是我的位置是

process = runtime.exec("/home/user/Documents/example.sh"); 

可能是:

process = runtime.exec("180.150.2.***/server/user/Documents/serverExample.sh"); 

事情是,爲了從服務器獲取.sh文件,我必須登錄,此應用程序可以是桌面應用程序或Web應用程序,但必須使用Java,因此,我怎麼能這樣做?

我感謝您的幫助。

Chema。

+0

問題不清楚。打算從遠程位置獲取shell腳本並在本地運行它,或者在遠程主機上運行遠程shell腳本? – 2012-07-23 03:32:56

+0

的目的是在遠程主機上運行shell腳本! – 2012-07-23 20:32:45

回答

1

基本上,我不認爲你可以做到這一點,你嘗試的方式。 Runtime.exec(...)將委託給操作系統執行實際執行。

有許多方法可以實現您想要的目的,無論是純Java還是通過基於OS的其他實用程序。

您可以SSH或telnet到遠程機器並通過這些接口執行命令。

您可以編寫一個客戶端服務器應用程序,其中服務器允許您發送命令以代表您執行(但您必須明白這是一個巨大的安全風險)。

+1

正確的錢。執行exec將操作委託給操作系統訪問這樣的共享資源,如果運行java應用程序的用戶沒有權限執行它,那麼它不會發生 – Alfabravo 2012-07-23 21:23:41

1

退房JschGanymed SSH。我用後者以編程方式執行ssh/scp任務。

相關問題