jar中的类路径资源

JohanSjöberg:

我有一个项目A,其中包含一些Java文件和一个类路径资源R.txt。在项目中,我使用ClassLoader.getSystemResource(“ R.txt”); 检索R.txt。

然后,我有一个项目B,其中包括项目A的jar文件。现在,getSystemResource(“ R.txt”)将找不到文本文件(是的,它仍在jar文件的根目录中)。甚至尝试按照其他网站上的建议尝试“ /R.txt”也不起作用。有任何想法吗?

乔恩·斯基特(Jon Skeet):

使用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.getResourceClass.getResource是相对于包含类的包的,除非您有一个斜杠,否则ClassLoader.getResource始终是绝对的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章