単一インスタンス Java アプリケーションの作成
単一インスタンス アプリケーションでは、プログラムのインスタンスが一度に 1 つだけ実行されるため、複数の同時実行が防止されます。 C# では、Mutex クラスがこの目的を果たします。ただし、このような動作を Java で実装するには、別のアプローチが必要です。
Java 実装
Java で単一インスタンス アプリケーションを作成するには、一般的な解決策としてファイル ロック メカニズムを利用します。 。効果的な方法の 1 つは、プログラムの起動時に一時ファイルを作成し、そのファイルのロックを取得することです。ロックが正常に取得された場合は、アプリケーションが実行中の最初のインスタンスであることを示します。
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) { // Handle exception appropriately } } }); return true; } } catch (Exception e) { // Handle exception appropriately } return false; }
使用法
このメソッドは、次の main メソッドで呼び出すことができます。アプリケーションを使用して、単一のインスタンスがすでに実行されているかどうかを確認します。ロックが正常に取得された場合、アプリケーションは実行を続行できます。ロックを取得できない場合は、別のインスタンスがすでに実行中であることを示しており、現在のインスタンスは終了する必要があります。
このファイル ロック アプローチを採用することで、Java アプリケーションは必要な単一インスタンスの動作を実装し、インスタンスが 1 つだけであることを保証できます。一度に実行されます。
以上がJava アプリケーションのインスタンスが一度に 1 つだけ実行されるようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。