質問: FileLockで排他制御をかけました。 isValid、isShardでロックの状態を取得したところ正常にbooleanで値を取得できました。 しかし同じjarファイルが起動してしまいます。 状況としては、Eclipseで実行可能jarをexportした物を実行しています。 処理の概要としては、定周期処理前の初期処理段階でファイルロック処理を行い、その後時間が来るまで待機状態にする。同じjarファイルを起動させると排他制御されずに起動してしまいます。 Javaのバージョンは1.8.0_131です。 同様な事象または改善する方法はありますでしょうか? また排他制御は同じjarに有効でしょうか?検索しましたが有用な情報が見つからなかったので質問しました。よろしくお願いします
回答: ちなみに自分のコードはこうだ。 try (FileOutputStream fos = new FileOutputStream(path.toFile()); FileChannel fc = fos.getChannel(); FileLock fl = fc.tryLock();