質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

暗号化

ネットワークを通じてデジタルデータをやり取りする際に、第三者に解読されることのないよう、アルゴリズムを用いてデータを変換すること。

Q&A

解決済

1回答

2995閲覧

execで実行したgpgコマンドの戻り値でエラー原因を分類する

ikjmyh

総合スコア7

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

暗号化

ネットワークを通じてデジタルデータをやり取りする際に、第三者に解読されることのないよう、アルゴリズムを用いてデータを変換すること。

0グッド

0クリップ

投稿2020/04/07 07:28

前提・実現したいこと

javaで実行したgpgコマンドの戻り値からエラーが発生した場合のエラー原因を自動で分類したい。
エラーの分類は
1.パスワードが間違っている
2.シークレットキーがない
3.それ以外
の3つに分けたいと思っています。
gpgコマンドの戻り値を取得してエラー原因を分類する方法を教えてください。

該当のソースコード

java

1package decrypt; 2 3import java.io.IOException; 4 5public class Gpg_cmd { 6 7 public static void main(String[] args) throws IOException, InterruptedException { 8 // TODO 自動生成されたメソッド・スタブ 9 10 String[] cmdarray = new String[9]; 11 12 cmdarray[0] = "gpg"; 13 cmdarray[1] = "--batch"; 14 cmdarray[2] = "--yes"; 15 cmdarray[3] = "--decrypt"; 16 cmdarray[4] = "--passphrase"; 17 cmdarray[5] = "password"; 18 cmdarray[6] = "--output"; 19 cmdarray[7] = "decrypted_file.dat"; 20 cmdarray[8] = "encrypted_file.dat"; 21 22 Process process = Runtime.getRuntime().exec(cmdarray); 23 24 int ret = process.waitFor(); 25 process.destroy(); 26 27 if(ret >= 2) { 28 29 /*エラー処理*/ 30 //ここでエラー原因によって3通りに分けたい 31 32 }else { 33 34 /*正常終了*/ 35 36 } 37 38 } 39 40} 41

補足情報(FW/ツールのバージョンなど)

バージョンなど
eclipse 4.11.0
java 8

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

gpgコマンドの戻り値は、gpgに訊くしかないとおもいます。

man gpg

RETURN VALUE
The program returns 0 if everything was fine, 1 if at least a signature was bad, and other error codes for fatal errors.

manには01の説明しかないので、それ以外はソースかドキュメントかを調べるしかないのではないでしょうか。
おそらくこれ https://github.com/gpg/gnupg とか https://www.gnupg.org/index.html とか。

投稿2020/04/07 08:49

編集2020/04/07 08:50
shiketa

総合スコア4061

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問