- PR -

外部コマンドの成功か失敗の判別方法

投稿者投稿内容
Tatsuya
ベテラン
会議室デビュー日: 2007/04/02
投稿数: 53
投稿日時: 2007-06-07 13:37
Javaから外部コマンドで何かを実行し、その後にecho $?などで成功か失敗かを調べたいのですが、Javaプログラム自体は成功しているので、どれも0(成功)と見なされてしまいます。

これをうまく動作させるためには、どのようにしたらいいでしょうか?
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2007-06-07 14:30
Java アプリを終了するときに System.exit() の引数で外部コマンドの終了コードを指定してはいかがでしょう。
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2007-06-07 14:50
その前に、Javaから外部コマンドを実行(Runtime#exec()?)したときの結果が分からないのでしょうか?
Tatsuya
ベテラン
会議室デビュー日: 2007/04/02
投稿数: 53
投稿日時: 2007-06-07 14:59
> mioさん

エラー文を解析すればわかるでしょうけど、それだと面倒なので、$?を調べようということになりました。


> インギさん

Javaアプリを終了せずに、同じプロセスの中で行うには難しいでしょうか?

java Main

と実行すると、Mainの中でsnmpwalk...を実行し、さらにそのsnmpwalk...が成功か失敗かを調べたいです。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-06-07 15:10
??
JavaからJavaのプログラムを外部プロセスとして呼び出しているのですか?
Tatsuya
ベテラン
会議室デビュー日: 2007/04/02
投稿数: 53
投稿日時: 2007-06-07 15:19
> nogiseさん

いえ、Javaから外部コマンドとしてsnmpwalkなどを実行し、そのコマンドの成功か失敗かをそのJavaからecho $?などで調べられないかなぁということです。
holic
ベテラン
会議室デビュー日: 2004/08/24
投稿数: 74
投稿日時: 2007-06-07 15:28
Process#exitValue()
の話?

see JavaDoc
だっちょ
大ベテラン
会議室デビュー日: 2006/12/05
投稿数: 115
投稿日時: 2007-06-07 15:54
ちゃんと復帰値が取れるなら、それで調べたほうがいいと思いますが、エラー文の解析は正規表現使えば簡単にできると思いますよ。

スキルアップ/キャリアアップ(JOB@IT)