Jon*_*eet 48
使用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");
Run Code Online (Sandbox Code Playgroud)
请注意调用时的前导斜杠Class.getResource
而不是ClassLoader.getResource
; Class.getResource
除非您有一个前导斜杠,否则它是相对于包含该类的包,而ClassLoader.getResource
始终是绝对的.
显然你的JAR没有被系统类加载器加载,所以getSystemResource()
无法工作.这应该工作:
ClassFromProjectA.class.getClassLoader().getResource("R.txt")
Run Code Online (Sandbox Code Playgroud)
IMO更方便的是将资源放在与使用它们的类相同的包中,因此您可以使用更短的
ClassFromProjectA.class.getResource("R.txt")
Run Code Online (Sandbox Code Playgroud)
(或者,在那个班级里面getClass().getResource("R.txt")
)
归档时间: |
|
查看次数: |
25360 次 |
最近记录: |