问题是这样的:
    我new了一个URLClassLoader实例去load一个jar包,当我第2次覆盖那个jar包,然后重新去load的时候,包找不到资源的错误,代码如下(这是一个web应用):
   URL url = urlClassLoader.getResource(PROP_FILE_NAME);
        InputStream is=url.openStream();
        if (is == null) {
         }
        Properties p = new Properties();
        try {
            p.load(is);
        } catch (Exception e1) {
             throw e1;
        } finally {
            is.close();
        }
然后我写了一个控制台小程序:也是用URLClassLoader实例去loader jar包,jar包内只放一个properties文件,如果只把properties文件打进包里没有异常,但是如果多打一个文件进jar包就报EOFException错误
代码如下:
    public static void main(String[] args) {
load();
try {
Thread.sleep(10000);
} catch (InterruptedException e) { 
}
load();
}
private static void load() {
String source = "d:/test.jar";
URL url=null;
try {
url = (new File(source)).toURL();
} catch (MalformedURLException e1) { 
}
Properties p = new Properties();
URLClassLoader classloader=new URLClassLoader(new URL[]{url});
InputStream is = classloader.getResourceAsStream(
"test.properties");
try {
p.load(is);
} catch (IOException e) { 
}
System.out.println(p.getProperty("test"));
}
我只是覆盖了jar包,为什么会说文件结尾异常呢(End of File Exception),需要自己写读取jar的方法还是还有其他的方法呢,麻烦哪位前辈帮忙看一下,不胜感激了。