1

このコマンドを Java コード ssh abc@ubuntu で実行したい

このコードを使用していますが、完全には機能せず、サーバーにログインしません。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class JavaApplication4 {

/**
 * @param args the command line arguments
 */
    public static void main(String[] args) throws IOException, InterruptedException {
    // TODO code application logic here
    ProcessBuilder pb = new ProcessBuilder("ssh","usmanmahmood@ubuntu");
//pb.redirectErrorStream(); //redirect stderr to stdout 
Process process = pb.start();
InputStream inputStream = process.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line = null;
while((line = reader.readLine())!= null) {
    System.out.println(line);
}

    int waitFor = process.waitFor();

   } 


   } 

間違いを教えてください、

4

2 に答える 2

2

Windowsマシンから実行している可能性がありますか?また、特に追加しない限り、ssh は Windows では有効なコマンドではありません。ほとんどの人は、JSCH http://www.jcraft.com/jsch/examples/Shell.java.htmlの使用を勧めます。

于 2013-02-13T16:23:38.507 に答える
1

null問題は、からの回線を待っていることですがReader、開いている SSH セッションからそれを取得することは決してありません。

あなたの場合、sshはリモート サーバーのコマンド プロンプトで待機しており、あなたは を待機していますssh

実行したいコマンドを ssh に渡されるオプションに追加してみてください。ログインして実行するだけです。

おそらくより関連性の高い質問は、なぜ Java でこれを行っているのかということです。シェルスクリプトを書いてみませんか?

于 2013-02-13T19:31:45.580 に答える