- ベストアンサー
Javaで自分のプロセスIDが取得したい
Java言語でバッチアプリケーションを製作しています。 "自分のプロセスIDと同じ名前のファイルを検索する"必要があるのですが、Javaでそのようなことができるのでしょうか。 自分のプロセスIDが"1234"だとしたら、対象ディレクトリの"1234"というファイルを検索するというようなものです。 OSはWindowsXPまたはHP/UXです。
- みんなの回答 (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を作れば、できそうです。
その他の回答 (1)
- pcbeginner
- ベストアンサー率46% (261/560)
Windows XPならtasklistコマンド、HP/UXならpsコマンド (HP/UX、さわったことないので、間違ってたらごめんなさい。) の戻りから自身のプロセスIDが判断できれば良いんですけど… javaのプロセスが1つのみなら簡単でしょう。 複数ある場合は「どう抽出するか。」ですね。
補足
回答ありがとうございます。 同じ名前のプロセスが同時に複数起動していて、それぞれが自分のプロセスIDと同じ名前のファイルを検索するのです・・・ tasklistやpsコマンドからの戻りでそれらを抽出するのが非常に困難(というか不可能?)で、何か良い方法はないのかと思っている次第です。 検索対象となるファイルを作成するプログラムは、psコマンドで取得したプロセスIDの名前でファイルを作成するものなので、なんとかして自分のプロセスIDを取得しなければならないのです。。。。
お礼
ありがとうございます。 やってみます。