Heim >Java >javaLernprogramm >Wie kann sichergestellt werden, dass jeweils nur eine Instanz einer Java-Anwendung ausgeführt wird?
Einzelinstanzanwendungen in Java erreichen
Im Gegensatz zu bestimmten Anwendungen wie MSN und Windows Media Player, die bei der Ausführung nur eine einzige Instanz erstellen Während der Ausführung können Java-Anwendungen mehrere Instanzen erzeugen. In diesem Artikel untersuchen wir, wie Sie Einzelinstanz-Java-Anwendungen mit der unten beschriebenen bewährten Methode erstellen.
Java-Ansatz
Im Gegensatz zu C#, wo die Mutex-Klasse dies übernimmt Funktionalität verwendet Java einen bestimmten Ansatz:
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; }
Das obige ist der detaillierte Inhalt vonWie kann sichergestellt werden, dass jeweils nur eine Instanz einer Java-Anwendung ausgeführt wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!