我有一个项目A,其中包含一些Java文件和一个类路径资源R.txt。在项目中,我使用ClassLoader.getSystemResource(“ R.txt”); 检索R.txt。
然后,我有一个项目B,其中包括项目A的jar文件。现在,getSystemResource(“ R.txt”)将找不到文本文件(是的,它仍在jar文件的根目录中)。甚至尝试按照其他网站上的建议尝试“ /R.txt”也不起作用。有任何想法吗?
使用getResource
而不是getSystemResource
使用特定于给定类加载器的资源而不是系统。例如,尝试以下任何一种方法:
URL resource = getClass().getClassLoader().getResource("R.txt");
URL resource = Foo.class.getClassLoader().getResource("R.txt");
URL resource = getClass().getResource("/R.txt");
URL resource = Foo.class.getResource("/R.txt");
请注意在调用时用斜杠Class.getResource
代替ClassLoader.getResource
;Class.getResource
是相对于包含类的包的,除非您有一个斜杠,否则ClassLoader.getResource
始终是绝对的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句