我需要找出答案哪个对象在我的 Java 应用程序中打开了一个文件。这是为了调试,因此欢迎使用工具或实用程序。
如果发现哪个对象太具体了,这class也会很有帮助。
这可能很棘手。您可以从使用分析器开始,例如VisualVM http://visualvm.java.net/(免费)或YourKit http://www.yourkit.com/(非免费)检查java.io.File http://download.oracle.com/javase/6/docs/api/java/io/File.html内存中的对象。如果您能找到一条符合您感兴趣的路径的路径,那可能会为您指明正确的方向。问题在于,应用程序不一定要存在 File 对象才能仍然打开文件。
您的下一步可能是在两者中设置断点文件输入流 http://download.oracle.com/javase/6/docs/api/java/io/FileInputStream.html and 文件输出流 http://download.oracle.com/javase/6/docs/api/java/io/FileOutputStream.html(除非您知道该文件是否正在被读取或写入),附加一个调试器,并观察其中之一打开您的文件。当然,还有其他打开文件的方法。您可能还需要标出诸如Class.getResourceAsStream() http://download.oracle.com/javase/6/docs/api/java/lang/Class.html#getResourceAsStream%28java.lang.String%29 and URL.openConnection() http://download.oracle.com/javase/6/docs/api/java/net/URL.html#openConnection%28%29, 例如。
您最后的手段可能是尝试全知调试器,例如ODB http://www.lambdacs.com/debugger/ or TOD http://pleiad.dcc.uchile.cl/tod/。我对他们的经验有限,但他们声称“无所不知”。您只需要弄清楚如何提出正确的问题即可。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)