輸入java.io.BufferedReader;
インポートにjava.io.IOException;
輸入java.io.InputStreamを。
輸入java.io.InputStreamReader。
輸入com.jcraft.jsch.Channel。
輸入com.jcraft.jsch.ChannelExec;
輸入com.jcraft.jsch.JSch。
輸入com.jcraft.jsch.JSchException。
輸入com.jcraft.jsch.Session。
/ **
- Javaは、リモートリンクJSCH Linuxのコマンド実行を使用します
- @author myz
-
* /
publicクラスJSchUtil {
プライベート静的JSCH JSCH。
プライベート静的セッションsession;/ **
- まず、サーバーへの接続
- @paramユーザー
- @param passwdの
- @paramホスト
-
JSchException @throws
* /
(文字列のユーザは、文字列のpasswd、文字列ホスト)JSchException {スローパブリック静的ボイドが接続
JSCH =新しいJSCH()。
セッション= jsch.getSession(ユーザ、ホスト、22)。
session.setPassword(passwdファイル);
java.util.Properties設定=新しいjava.util.Properties();
config.put( "StrictHostKeyChecking"、 "なし");
session.setConfig(設定)。session.connect();
}
/ **
- サーバに接続した後、対応するコマンドのLinuxを実行します
- @paramコマンド
- @paramユーザー
- @param passwdの
- @paramホスト
- @throws JSchException
* /
パブリック静的ボイドexecCmd(文字列コマンドは、文字列のユーザは、文字列のpasswd、文字列ホスト)JSchException {スロー
(ユーザは、passwd、ホスト)に接続します。
BufferedReaderのリーダー= NULL;
チャンネルチャンネル= NULL;
{みてください
(!コマンド= NULL){ながら
チャンネル= session.openChannel( "実行");
((ChannelExec)チャネル).setCommand(コマンド)。
channel.setInputStream(NULL)。
((ChannelExec)チャネル).setErrStream(System.errの)。
channel.connect();
//获取流
= channel.getInputStreamにおける入力ストリーム();
リーダー=新しいBufferedReaderの(新しいInputStreamReaderの(に))。
文字列BUF = NULL;
しばらく((BUF = reader.readLine())!= NULL){
System.out.println(BUF); //印刷結果のログを返す
}
}
}キャッチ(IOExceptionをE){
e.printStackTrace();
}キャッチ(JSchException E){
e.printStackTrace();
} //最後に、最終的に{そして、の流れ接続閉じ
{試み
reader.Closeを();
}キャッチ(IOExceptionをE){
e.printStackTrace();
}
channel.disconnect();
Session.disconnect();
}
}
}