我正在嘗試一種新的方法來解決一直困擾我的問題。我沒有使用expect4j作爲我的SSH連接,(我無法找出阻止消費者運行和關閉問題的方法,如果您對此有所瞭解並感到聖潔,請參閱過去的帖子以獲取更多信息),我將嘗試使用期望腳本。我有一個運行時編碼到一個button.onclick,見下文。爲什麼我獲得127退出價值?我基本上只是需要這個期望腳本ssh,運行一組期望和發送,給我的讀數,這就是它...Java拋出進程exitValue:127當運行期望腳本
我正在使用cygwin。不知道這是否與爲什麼這不起作用有關......是我的sh-bang線指向正確的地方?我的cygwin安裝是一個完整安裝,所有軟件包位於C:\ cygwin。
爲什麼我得到127退出值而不是從我的服務器讀取數據,以及如何減輕這個影響?
try
{
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec(new String [] {"C:\\cygwin\\bin\\bash.exe", "C:\\scripts\\login.exp"});
InputStream stdin = proc.getInputStream();
InputStreamReader isr = new InputStreamReader(stdin);
BufferedReader br = new BufferedReader(isr);
String line = null;
System.out.println("<OUTPUT>");
while ((line = br.readLine()) != null)
System.out.println(line);
System.out.println("</OUTPUT>");
int exitVal = proc.waitFor();
System.out.println("Process exitValue: " + exitVal);
} catch (Throwable t)
{
t.printStackTrace();
}
#!/usr/bin/expect -f
spawn ssh [email protected] password
match_max 100000
expect "/r/nDestination: "
send -- "xxxxxx\r"
expect eof
而你的問題是?我在這裏沒有看到錯誤消息或任何其他描述,當您嘗試此操作時會發生什麼。 – bmargulies
對不起:爲什麼我得到127退出值而不是從我的服務器讀取數據,我該如何減輕這個影響? –
爲什麼你期望bash,而不是'expect',能夠成功運行期望腳本? – bmargulies