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!