1

Javaプログラムを介してリモートホストでコマンド/実行可能ファイルを実行しようとしています。これが私が関連するスレッドから得たコードです。リモートホストに接続して、のBufferedReaderを介してストリームを読み取ることができます。ただし、 out.println( "ls / home / ubuntu");を使用してコマンドを送信/実行することはできません。。何かお勧めはありますか?私はMACOSシステムに取り組んでいます。

Process p = Runtime.exec("ssh myhost");
PrintStream out = new PrintStream(p.getOutputStream());
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream());
Thread.sleep(3000);
while (in.ready()) {
   String s = in.readLine();
   System.out.println(s);
}

out.println("ls /home/ubuntu");
Thread.sleep(3000);
while (in.ready()) {
    String s = in.readLine();
    System.out.println(s);
}
out.println("exit");
4

2 に答える 2

5

動作するようになりました。

PrintStream out = new PrintStream(p.getOutputStream());

うまくいかないのでこれに変更しました。

PrintWriter out = new PrintWriter(new OutputStreamWriter(new BufferedOutputStream(p.getOutputStream())), true);
于 2013-03-01T15:01:14.190 に答える
2

ライブラリJSchを使用していましたが、ドキュメントを確認すると、 sshxcuteの方が見栄えがよいと思います。

于 2013-03-01T08:29:37.137 に答える