2007年9月21日のブックマーク (1件)

  • スタンドアロンJavaプログラム(Swing)の複数起動の抑止方法

    私が思いつく一般的と思われる方法は2つあります。 (1)WindowsのMutexを利用する方法 WinAPICreateMutex()を利用し、適当な名前のMutexを作成します。 Mutex作成の成功・失敗でプログラムの二重起動を判定します。 Windowsでは一般的な方法ですので情報は手に入れやすいと思います。 ただし、Java以外の言語でプログラムを書く必要があります。 (2)ファイルチャネルのロックを利用する方法 あくまでJavaのみでということでしたら、ファイルチャネルのロックを利用する方法があります。 説明しにくいのでサンプルコードを書きます。(あくまでサンプルなので、実際に使う場合はよくテストしてください。) 仮にVMが異常終了した場合でもロックはおそらく開放されます。(Windowsがプロセスの終了を検知するため) 万が一開放されなかった場合でも、Windowsの再起動

    スタンドアロンJavaプログラム(Swing)の複数起動の抑止方法