2
JavaのRuntime.getRuntime()。exec()をに設定しようとしています。ssh-keygen linuxユーティリティを使用して公開鍵を秘密鍵から抽出します。秘密鍵から公開鍵を抽出するためのJavaのssh-keygenコマンド
私は、端末上でこのコマンドを実行すると、それは完璧に動作し、私はRSA秘密鍵
ssh-keygen -y -f /home/useraccount/private.txt > /home/useraccount/public.txt
から公開鍵を抽出することができるよしかし、私はJavaを使用して同じコマンドを実行すると、それは作成されません。 public.txtファイル。それでもエラーは発生しません。
私はなぜそれが不思議ですか?
は、シェルは実行する前に、リダイレクトを行いますプログラム。 Javaの 'Runtime.exec()'はリダイレクトを行いません。 (1) 'Process.getInputStream()'から読み込んで自分自身にファイルに書き込むか、 (2) 'ProcessBuilder'と' .redirectOutput() 'を使ってリダイレクトを行います。または(3) '.exec(String ...)'オーバーロードを使用して実行します。 'sh 'を' -c'で置き換え、シェルが次に解析して扱うコマンドライン全体を(単一の引数として)! –
サンプルを共有できますか? – sunny