我試圖在未觸及它10年後重新學習Java。我想用我希望編寫的其他應用程序創建一個使用JSch的庫。我已經解決了關係,但現在我正在使用stdin和stdout。 我正在尋找一種方法,它接受String中的單個命令並返回一個ArrayList和結果。JSch外殼返回到StringArray
任何援助將是偉大的!
//This vars are in the class.
private JSch _jsch;
private Session _session;
private Channel _channel;
這裏是我的連接方法
public boolean Connect() throws JSchException
{
try {
_jsch = new JSch();
_session = _jsch.getSession(_user, _hostname, _port);
_session.setPassword(_password);
_session.setConfig("StrictHostKeyChecking", "no");
_channel = _session.openChannel("shell");
//((ChannelShell)_channel).setPtyType("vt100");
_channel.setInputStream(bais);
_channel.setOutputStream(baos);
_channel.connect(3000);
}//try to connect
catch (JSchException ex)
{
throw ex;
}
return true;
}
的目標是有一次我打開連接我可以給這個方法的命令,並在數組中返回結果。根據結果採取行動併發送更多命令。我不想每次關閉連接,因爲它們將建立在它之前的命令上。我不確定如何使用輸入和輸出流足以獲得我期待的結果。如果您可以協助填寫以下方法,我將不勝感激。
public List<String> ExecuteCommand (String command) {
//run command to existing connection
//Get returned lines to Array List and return the list
}
感謝
你想採取一個多行字符串(命令)並創建一個行的ArrayList?就這樣? –
非常。我只是不確定如何在這裏處理java中的流。我的目標是做到以下幾點。 列表 results = ExecuteCommand(「ps -ef」); 我知道ps -ef會返回很多行,所以我想把它放到數組或ArrayList中。 –
vSteve