単一インスタンスの Java アプリケーションの確保: 総合ガイド
アプリケーション開発の領域において、実行中のアプリケーションの複数のインスタンスを防止する機能多くの場合望ましいです。単一インスタンス アプリケーションは、単一のアクティブなインスタンスを維持し、後続の実行試行を適切に処理します。
このガイドでは、Java で単一インスタンス アプリケーションを実装するための堅牢で効果的な方法を検討し、これを実現する方法に関して提起された質問に答えます。 Mutex クラスを使用せずに行います。
解決策: ファイル ロック
単一インスタンスの動作を実現する信頼できる手法の 1 つは、次のとおりです。ファイルロックメカニズムを利用します。その仕組みは次のとおりです:
実装
次の Java コードは、前述のファイル ロック アプローチの例です。
private static boolean lockInstance(final String lockFile) { try { final File file = new File(lockFile); final RandomAccessFile randomAccessFile = new RandomAccessFile(file, "rw"); final FileLock fileLock = randomAccessFile.getChannel().tryLock(); if (fileLock != null) { Runtime.getRuntime().addShutdownHook(new Thread() { public void run() { try { fileLock.release(); randomAccessFile.close(); file.delete(); } catch (Exception e) { log.error("Unable to remove lock file: " + lockFile, e); } } }); return true; } } catch (Exception e) { log.error("Unable to create and/or lock file: " + lockFile, e); } return false; }
ファイル ロック メカニズムを利用することで、 Java アプリケーションが単一のインスタンスとして動作することを効果的に保証し、複数の実行を防止し、シームレスなユーザーを提供できます。体験してください。
以上がMutex を使用せずに単一インスタンスの Java アプリケーションを確保するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。