Java での単一インスタンス アプリケーションの実現
実行時に単一インスタンスのみを作成する MSN や Windows Media Player などの特定のアプリケーションとは対照的にJava アプリケーションは実行中に複数のインスタンスを生成する場合があります。この記事では、以下で説明する実証済みの方法を使用して単一インスタンスの Java アプリケーションを作成する方法を検討します。
Java アプローチ
Mutex クラスがこれを処理する C# とは異なります。 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 アプリケーションのインスタンスを一度に 1 つだけ実行するようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。