0
我使用Class.getResource()
从长期运行的Java应用程序的jar中加载文件。它工作正常。但是在应用程序运行很长时间后,它开始返回null
。Class.getResource()在长时间运行后返回null
如何解决此问题?我只能看到getResource()
返回null
;但我找不到为什么它返回null
。
我检查了由Class.getResourceAsStream()
返回的未关闭流,但我没有调用它。 (虽然,我的一个库可能...)我也检查了FileInputStreams没有被关闭,但我还没有找到任何。 (FileInputStreams在这种情况下仍然可用。)
编辑:这似乎与this one的问题相同。另外,possibly related。
我想通过启动反编译有问题的类,调用它们相同的方法,并记录结果。首先,我会记录'Class.getClassLoader0()','Class.getClassLoader0()。getResource()','Class.getClassLoader0()。getParent()。getResource()','Class.getClassLoader0() .getBootstrapResource()'和'Class.getClassLoader0()。findResource()'(其中大部分只能通过反射访问) - 当然,在.getResource()停止工作之前和之后比较它们的输出。 – Siguza
@Siguza谢谢!我会尽力,并在几周内回复。 – alexantd