研究jvm hotswap的过程中,有一步需要读取java
class的字节流,本来想只提供一个class就好了,但是在Web项目下不通用,先记录下来,留待以后使用。
private static byte[] loadBytes(Class<?> cls) throws IOException {
if (cls == null)
return null;
String name = cls.getCanonicalName().replaceAll("\\.", "/") + ".class";
InputStream is = ClassLoader.getSystemResourceAsStream(name);
BufferedInputStream bis = new BufferedInputStream(is);
try {
int length = is.available();
byte[] bs = new byte[length];
System.err.println("ddd:" + bs.length);
bis.read(bs);
// is.close();
return bs;
} finally {
bis.close();
}
}