获取class类字节数组的方法
程序员文章站
2022-07-09 13:20:58
...
研究jvm hotswap的过程中,有一步需要读取java class的字节流,本来想只提供一个class就好了,但是在Web项目下不通用,先记录下来,留待以后使用。
ps:
-javaagent:$CATALINA_BASE/lib/classreloader-1.0.0.jar
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(); } }
ps:
-javaagent:$CATALINA_BASE/lib/classreloader-1.0.0.jar