我使用的是 Ubuntu 12.04。我使用 BufferWriter 编写 java 文件来打开并写入新文件。但我没有关闭BufferWriter。使用 lsof 命令检查终端中打开了多少个文件。但该文件未显示在列表中。然后我在终端中运行 lsof 命令,而不是在 jar 中使用 BufferWriter,它显示了该 jar 文件。如何使用 lsof 命令在终端中显示包含 BufferWriter 的 java 或类文件未正确关闭。
例如在终端中,
lsof +D /home/manoj/MyProject/WEB-INF
提前致谢..恐怕我的英语不好。
最佳答案
一旦您的 java 进程关闭,该文件也会被 JVM 关闭。另外,您无法看到哪个类打开了该文件,因为 lsof 只列出进程,无论如何它都是运行您的 java 代码的 jvm 进程。
如果您运行 java -jar,jvm 可能会保持 jar 文件打开,但如果您在类上运行 java,它们会被加载到内存中然后关闭,因此您也无法看到 JVM 打开了哪些类文件.
关于java - LSOF 命令不显示 java 和类文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19270754/