Forcer Java à libérer tous les verrous / poignées de fichiers en Java

Mon application Java (ce qui est tout à fait un peu de code) fait beaucoup d'opérations sur les fichiers. À un moment, dans mon application, j'ai besoin de déplacer un fichier d'un emplacement à un autre et pour cela, je suis en utilisant le Files.move méthode de JDK7.

Quand j'essaie de faire ceci, j'obtiens une erreur me disant que le fichier est en cours d'utilisation. Je sais pour un fait que c'est une partie de mon code de verrouillage de cette ressource.

Comment je force mon application Java pour la libération de tous les verrous avant l'appel de la fonction qui déplace/renomme mon fichier?

Si ce n'est pas possible, est-il un moyen facile de vérifier quelle partie de mon code verrouillage d'un fichier? Péniblement à travers l'ensemble de ma base de code pour trouver unclosed descripteurs de fichiers serait un cauchemar compte tenu de la quantité de code, il est.

Grâce

source d'informationauteur Mridang Agarwalla