Como posso saber quais processos estão usando um arquivo em Java no Windows?

Temos uma tarefa agendada escrita em Java que está falhando nas plataformas Windows porque às vezes os arquivos que ela precisa excluir ainda estão em uso. Existe uma maneira de dentro do Java que eu possa ver quais processos estão usando um arquivo e obter informações sobre eles?

Eu pensei que gostaria de acrescentar que estou disposto a usar JNA ou JNI, se necessário, e eu suponho que vai ser.

questionAnswers(4)

yourAnswerToTheQuestion