从Jar资料里面读取文件

从Jar文件里面读取文件

   我们知道,当jar放入classpath中时,可以通过getResourceAsStream来取到其包含的普通文件,比如a包下有个b.txt文件,调用类叫SomeClass,于是可以如下取到:

someClass.getClass().getResourceAsStream("/a/b.txt");

 

  但是有时候这个jar不是放在classpath中的,怎么取呢?这个方法不好用了,如果想用,只有把jar通过程序动态地加入classpath中,再用上面的方法做,这个方法我好像以前试过,貌似不好用,即使好用,还是有点麻烦.不如用下面的办法最简单,比如这个jar的位置是:d/lib/my.jar,同样要取出b.txt,于是你可以如下得到其输出流,从而进行内容提取. 

	URL  url = new URL("jar:file:/d/lib/my.jar!/a/b.txt");
 url.openStream();
 是不是很方便?