2011-07-08 27 views
-3

を働いていない私はRuntime.getRuntime()。execの()のgpgコマンドで

上記のコマンドで
gpg --batch --yes -o abc.csv.gpg -r 'balu shanmukh' -e A2.java 

--batch 
--yes 
-o 
-r and -e are options 

baluのshanmukhがあるファイルを暗号化するのgpgコマンドがあります値。

コマンドは動的に準備され、コマンドは上記のとおりです。このコマンドは、コマンドラインでexectedされているが、このコマンドは

Runtime.getRuntime().exec(command); 

から実行されているときに、エラーメッセージ としての使用取得しています:GPGのclasssパスに問題が自分ではないのgpg [オプション] [ファイル名]

をまたは何か私は、コマンドの間にスペースを持っていない値のための単一引用符を削除する場合は、javaから適切に実行されているためです。

私たちが価値のある空間を持つときの問題。価値のために引用符を使用することは必須であり、もしそれを使用するならば。 commadが正しく実行されていない

私はその動作を理解できませんでしたか? は、いずれかの私は

+0

あなたのコードは何ですか?実行するコマンドを作成する部分(gpg文字列)? – woliveirajr

+0

[パラメータでコマンドを実行する方法]の複製が可能ですか?(http://stackoverflow.com/questions/7134486/how-to-execute-command-with-parameters) – Raedwald

答えて

1

Runtime().exec()を使用しないでください、と単一の文字列などのコマンドを作成しないこの動作を理解するのに役立ちます。代わりにProcessProcessBuilderを作成し、各スイッチを引数としてコマンドに渡します。

は簡単な例です:

Process process = new ProcessBuilder("gpg", "--foo", "-r", "some_file_name").start(); 
int exitStatus = process.waitFor(); 

PS:他の人が指摘したように、あなたの質問を再検討し、あなたの質問に答えると思う答えをチェックします。人々は何らかの努力をして答える。彼らが助けてくれたと思ったら、投票してください。あなたの質問に答えた回答を確認してください。
幸運とここに歓迎;)ここで

0

は簡単な例です:

プロセスプロセス=新しいProcessBuilderを( "GPG"、 "--foo"、 "-r" 、 "some_file_name")。start(); int exitStatus = process.waitFor();

申し訳

それdoesntのあなたは、引数として単一引用符で囲まれた文字列を渡す方法を説明します。 すなわち引数として「バクー」を渡す。 "'baku'"は機能しません....

関連する問題