• ベストアンサー

Javaで自分のプロセスIDが取得したい

Java言語でバッチアプリケーションを製作しています。 "自分のプロセスIDと同じ名前のファイルを検索する"必要があるのですが、Javaでそのようなことができるのでしょうか。 自分のプロセスIDが"1234"だとしたら、対象ディレクトリの"1234"というファイルを検索するというようなものです。 OSはWindowsXPまたはHP/UXです。

質問者が選んだベストアンサー

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.2

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=25848&forum=12&4 辺りが参考になりそうです。WindowsとHP-UXのpidを取得するライブラリは自分で作成する必要がありますが。 WindowsならWin32APIのGetCurrentProcessId() http://yokohama.cool.ne.jp/chokuto/urawaza/api/ UNIXならgetpid()システムコール http://www.linux.or.jp/JM/html/LDP_man-pages/man2/getpid.2.html を使って、それぞれ上記サイトの解説で出てくるlibpid.soやpid.dllを作れば、できそうです。

ryou0607
質問者

お礼

ありがとうございます。 やってみます。

その他の回答 (1)

回答No.1

Windows XPならtasklistコマンド、HP/UXならpsコマンド (HP/UX、さわったことないので、間違ってたらごめんなさい。) の戻りから自身のプロセスIDが判断できれば良いんですけど… javaのプロセスが1つのみなら簡単でしょう。 複数ある場合は「どう抽出するか。」ですね。

ryou0607
質問者

補足

回答ありがとうございます。 同じ名前のプロセスが同時に複数起動していて、それぞれが自分のプロセスIDと同じ名前のファイルを検索するのです・・・ tasklistやpsコマンドからの戻りでそれらを抽出するのが非常に困難(というか不可能?)で、何か良い方法はないのかと思っている次第です。 検索対象となるファイルを作成するプログラムは、psコマンドで取得したプロセスIDの名前でファイルを作成するものなので、なんとかして自分のプロセスIDを取得しなければならないのです。。。。