簡単に言うと、バックエンドとしてsqlitejdbcを使用するswingアプリです。現在、同じデータベースファイルで動作する複数のインスタンスを起動することに問題はありません。そしてあるべきです。ファイルはロックされているため(アプリの実行中は削除できません)、チェックは簡単です。そうではないことが判明しました。
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。