So zeigen Sie an, welche Instanz den Dateideskriptor einer bestimmten Datei in Java hat
Posted: 28 Dec 2024, 18:12
Hintergrund
Beginnen Sie mit dem Pfad eines bestimmten Datei, gibt es eine Möglichkeit herauszufinden, welche Instanz einer Klasse den Dateideskriptor hat(/ der Datei?
Eine Methode, die ohne Herunterfahren von Tomcat anwendbar ist (wie jcmd), ist vorzuziehen, da andere WARs auf demselben Tomcat getestet werden.
- Ich schreibe eine Webanwendung unter Windows. Diese Anwendung besteht aus zwei oder mehr WARs.
- Diese WARs erstellen temporäre Dateien bei der Verarbeitung.
- Beim Programmtest habe ich festgestellt, dass eine temporäre Datei immer noch vorhanden ist und nicht gelöscht wird. Ich habe versucht, diese Datei aus dem Explorer zu löschen, aber ich habe die Meldung erhalten, dass die Aktion nicht abgeschlossen werden kann, da die Datei in „java.exe“ geöffnet ist..
- Das ist offensichtlich dass einer der WARs die Datei immer noch öffnet (weil in der Meldung java.exe steht). Aber es gibt zwei oder mehr WARs auf Tomcat, daher konnte ich nicht herausfinden, welche Anwendung dieses Problem verursacht hat.
- Außerdem sind diese Anwendungen so komplex, dass es schwierig ist, herauszufinden, welche Klasse liest /schreibt (/
Code: Select all
FileInputStream
, zum Beispiel) diese Datei.Code: Select all
FileOutputStream
Beginnen Sie mit dem Pfad eines bestimmten Datei, gibt es eine Möglichkeit herauszufinden, welche Instanz einer Klasse den Dateideskriptor hat(
Code: Select all
FileInputStream
Code: Select all
FileOutputStream
Eine Methode, die ohne Herunterfahren von Tomcat anwendbar ist (wie jcmd), ist vorzuziehen, da andere WARs auf demselben Tomcat getestet werden.