0
我編寫了一個可以遠程執行系統命令的小型客戶機/服務器應用程序。當你只需要讀取它們的輸出時,它可以很好地處理非交互式程序。但是,是否有可靠的方法將用戶輸入發送到流程開始如果需要它?我怎麼才能找出一個過程是否提示輸入?遠程執行交互式CLI程序
我編寫了一個可以遠程執行系統命令的小型客戶機/服務器應用程序。當你只需要讀取它們的輸出時,它可以很好地處理非交互式程序。但是,是否有可靠的方法將用戶輸入發送到流程開始如果需要它?我怎麼才能找出一個過程是否提示輸入?遠程執行交互式CLI程序
看看'expectj'。這是http://en.wikipedia.org/wiki/Expect
http://expectj.sourceforge.net/
實例的端口:
// Create a new ExpectJ object with a timeout of 5s
ExpectJ expectinator = new ExpectJ(5);
// Fork the process
Spawn shell = expectinator.spawn("/bin/sh");
// Talk to it
shell.send("echo Chunder\n");
shell.expect("Chunder");
shell.send("exit\n");
shell.expectClose();
你看着使用SSH? (通過像jSSH這樣的Java庫)它看起來像你試圖做的是非常相似。也許你可以從它的工作原理中獲得一些想法(或者僅僅使用它,因爲你不需要在服務器上安裝Java並且它工作) – 2011-12-15 08:34:57
我並不真的需要SSH,它對於簡單系統來說看起來太複雜了,我有。我想用標準的Java庫來實現它(如果可能的話)。 – Ree 2011-12-15 08:44:31