- PR -

Runtime.getRuntime().exec()でコマンドが稀に実行されないことがある

1
投稿者投稿内容
すぷりんぐ
会議室デビュー日: 2006/11/09
投稿数: 7
投稿日時: 2006-11-09 10:17
こんにちは、初めて投稿いたします。
Java初心者で至らない点が数多くあると思いますが、何卒皆様のお知恵をお貸しください。


現在、Runtime.exec()を使用してバッチファイルを実行しようとするアプリケーションの開発を行っております。
バッチファイルの中身は自身のプログラムをJarアプリケーション(5MBほど)にしたものをjavaコマンドからパラメータを付与した上で起動しようとしています。


javaプログラム(aaa.jar):
   パラメータ無しでの起動:Runtimeでバッチファイルを起動する。その後、業務処理を行う。(自動で終了することはない)
  「-A」パラメータでの起動:Runtimeでバッチファイルを起動しない。その後、業務処理を行う。(自動で終了することはない)

バッチファイル:
   「java -jar aaa.jar -A」とだけ記述。


上記のようなプログラムですので、aaa.jarが2個起動すれば成功となります。
しかし、稀になのですがバッチファイルが実行されずにaaa.jarが1つしか起動されないという現象が発生しております。
Runtime.exec()実行後にwaitFor()を実行して処理を待ち続けているということもありません。また、他のサイトを検索していた際に発見した、バッファが貯まり処理が途中で止まるという事象でもありませんでした。

また、現在のところ、開発端末(WindowsXP)ではこの現象が起こったことはなく、テスト端末(Windows2003Server)でのみ起こっております。(開発端末ではあまり実行していないからかもしれません)

JDKバージョン:1.4.2-11
OS:開発端末(WindowsXP) テスト端末(Windows2003Server)

実際にこのような現象に遭われた方、またはJavaに詳しい方のご意見をお聞かせ願いたいです。
よろしくお願い致します。
すぷりんぐ
会議室デビュー日: 2006/11/09
投稿数: 7
投稿日時: 2006-11-14 17:58
申し訳ございません。
どうやら、
> バッファが貯まり処理が途中で止まるという事象でもありませんでした。
この部分が思い込みだったようです。

バッチファイルのJavaコマンドの前に「@echo off」を付け加えたところ、2個目のaaa.jarが起動するようになりました。

ただ、いまだにマシンによって起動するしないの差がわかりません。
マシン自体のメモリによって、許容するバッファの容量が違ってくるものなのでしょうか?
1

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