2017-10-31 26 views
0

Runtime.getRuntime()。exec()を使用してJavaプログラムからgpg暗号化コマンドを実行する方法を教えてもらえますか?JavaランタイムからLinuxコマンドを実行する

私は以下のように実行したいサンプル・コマンド:

GPG -u 'receipient' -r鍵ID --armor --output /home/myuser/tmp/check.pgp --sign - パスフレーズ ' & SW 217 @' --batch --encrypt /home/myuser/tmp/check.txt*

私はそれは使い方」のようなエラーを与える私のJavaプログラムからこれを実行しようとする:GPG [オプション] [ファイル名] "

このエラーを解決して上記のgpg cを実行してくださいJavaプログラムからのommand。

+1

どのようなコードを試しましたか?コマンド自体をテストしましたか? – phflack

+1

あなたのコードはどこですか? – johnII

+0

Runtime.execは廃止されました。 [ProcessBuilder](https://docs.oracle.com/javase/9​​/docs/api/java/lang/ProcessBuilder.html)を使用してください。また、質問にコードを表示しないと、コードのトラブルシューティングを行うことはできません。 – VGR

答えて

0

gpgバイナリがホストに正しくインストールされている場合は、次のコードで問題を解決する必要があります。

Process p = new ProcessBuilder("gpg -u 'receipient' -r KeyID --armor --output /home/myuser/tmp/check.pgp --sign --passphrase '&[email protected]' --batch --encrypt /home/myuser/tmp/check.txt*".split(" ")) 
.inheritIO() 
.start(); 

p.waitFor(); 

私は正しい設定ではありませんが、このコードは期待通りに動作します。ここで試すことができます:https://tech.io/snippet/VzJtME0

+0

フレデリックに感謝します... – Ramchander

関連する問題