在Java 中實作單一實例應用程式
與MSN 和Windows Media Player 等某些應用程式相反,它們在執行時僅建立單一實例運行時,Java 應用程式可能會產生多個實例。在本文中,我們將探索如何使用下述經過驗證的方法來建立單一實例 Java 應用程式。
Java 方法
與C# 不同,其中Mutex 類別處理此問題功能,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應用程式一次只執行一個實例?的詳細內容。更多資訊請關注PHP中文網其他相關文章!