【发布时间】:2014-11-26 17:18:08
【问题描述】:
我用谷歌搜索下面的代码如何加载资源
Abc.class.getClassLoader().getResourceAsStream("abc.txt")
并发现它在类路径中的所有jar文件和zip文件中搜索资源。
但是当我尝试它时,我无法加载它,但如果我提供包路径,那么我可以加载它 谁能告诉我 getResourceAsStream 如何搜索类路径
谢谢
一种情况是:- 我下面的代码是一个简单的程序,我的资源文件 abc.txt 在 com.abc 包内。当我指定包的路径时它起作用,而当我没有它时它不起作用。
package com.abc;
public class ResourceExp {
public static void main(String args[])
{
new ResourceExp().getResource();
}
public void getResource()
{
String name = "abc.txt";
// worked
System.out.println(ResourceExp.class.getClassLoader().getResourceAsStream("com/abc/"+name));
//not workded
//System.out.println(ResourceExp.class.getClassLoader().getResourceAsStream(name));
}
}
如果 getResourceAsStream 查找所有 jar 文件和目录中的资源,那么为什么我必须指定包路径
【问题讨论】: