欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

获取class类字节数组的方法

程序员文章站 2022-07-09 13:20:58
...
     研究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();
		}
	}


ps:
-javaagent:$CATALINA_BASE/lib/classreloader-1.0.0.jar