Puede bloquear/desbloquear archivos y carpetas en Java pero solo mediante una aplicación que los bloqueó (programó). Sin embargo, no hay ningún método/clase Java que pueda desbloquear el archivo utilizado por otro proceso.
Debe agrupar su aplicación con otro software (nativo). Por ejemplo, podría crear un script de shell para sistemas Linux y ejecutarlo. En la aplicación Java detectar en qué sistema operativo se está ejecutando para que pueda ejecutar el script/software adecuado.
Cuando la aplicación requiere bloqueo RW, el sistema debe garantizar que nadie más tenga derechos para modificarlo, por lo que debe eliminar el proceso que lo está utilizando.
Si usted tiene acceso al código fuente de esa tercera parte de aplicaciones Java (ese archivo es en realidad el bloqueo que necesita), entonces se podría aplicar lado del servidor que escuche las solicitudes de desbloqueo de archivos y aprobación para el bloqueo de nuevo otra vez .
En mi opinión, un mejor enfoque sería transferir el archivo de esa aplicación al suyo, luego haga lo que quiera y la aplicación de terceros se puede ejecutar sin interrupción (no debería ser notorio). Si necesita modificarlo, entonces el 3er debe esperar, su modificación y devolver una versión actualizada, 3ra continúa trabajando.
Un poco similar a su problema? http://stackoverflow.com/questions/1555883/locking-and-unlocking-files-using-the-java-api Aunque la solución provista no es muy elegante, funcionará por el momento. – darnir
Además, ¿puede identificar qué aplicación está bloqueando su archivo de registro? ¿Es una aplicación externa de terceros? ¿O alguna otra pieza de tu propio código? Si es su propio código en alguna parte, esto podría ser de alguna ayuda: http://www.javaspecialists.eu/archive/Issue190.html – darnir
Otro problema similar: http: // stackoverflow.com/questions/5680588/in-java-is-there-a-way-to-read-a-file-when-that-file-is-locked-by-other-thread –