简单来说:一个使用 sqlitejdbc 作为后端的摇摆应用程序。目前,启动使用同一数据库文件的多个实例没有问题。应该有。该文件被锁定(在应用程序运行时无法删除它),因此检查应该是微不足道的。结果不是。
File f = new File("/path/to/file/db.sqlite");
FileChannel channel = new RandomAccessFile(f, "rw").getChannel();
System.out.println(channel.isOpen());
System.out.println(channel.tryLock());
结果是
true
sun.nio.ch.FileLockImpl[0:9223372036854775807 exclusive valid]
无论应用程序是否正在运行。我错过了重点吗?TIA。