0

実行したい

ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=dev/null -i key.txt user@host 'cd some/directory; ./check status'

Javaで、それが私に与える応答を読んでください。誰かが私にこれを行う方法を教えてもらえますか?
コマンドからわかるように、問題は 1 つのコマンドのみを実行する必要があることです。パスワードなどを使用せずに秘密鍵を使用してサーバーにアクセスしています。私はこれを解決しようとして頭を壁にぶつけています。

4

3 に答える 3

1

ランタイムとプロセスを使用できます。

Process cmdProc = Runtime.getRuntime().exec("ssh -o ...");

次に、出力を処理できます。

BufferedReader outReader = new BufferedReader(
                              new InputStreamReader(cmdProc.getInputStream()));
String l;
while ((l= outReader.readLine()) != null) {
   // process standard output here
}
于 2013-07-16T13:37:54.987 に答える
1

クラスを使用しRuntimeてコマンドを分割し、String[]配列オブジェクトの要素として保存できます。次に、この配列をRuntime#exec(String[] args)メソッドの引数として渡します。これにより、指定されたコマンドと引数が別のプロセスで自動的に実行されます。

public static void main(String[] args) throws IOException {
    Runtime rt = Runtime.getRuntime();
    String[] cmd = { "/bin/ssh", "-o", "..." };
    Process proc = rt.exec(cmd);
    BufferedReader is = 
          new BufferedReader(new InputStreamReader(proc.getInputStream()));
    String line;
    while ((line = is.readLine()) != null) {
        System.out.println(line);
    }
}
于 2013-07-16T13:40:04.180 に答える