`
pcpig
  • 浏览: 91327 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

获取class类字节数组的方法

阅读更多
     研究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
分享到:
评论

相关推荐

    图片文件与Base64编码字节数组字符串互转

    在IT领域,尤其是在Web开发中,图片文件与Base64编码字节数组字符串的转换是一种常见的操作。这种转换在不直接使用图片文件路径或URL,而是将图片数据嵌入到HTML、CSS或JavaScript中时非常有用。下面我们将详细探讨...

    java从输入流中获取数据并返回字节数组示例

    //从输入流中获取数据并以字节数组返回public class StreamTool { /** * 从输入流获取数据 * @param inputStream * @return * @throws Exception */ public static byte[] readInputStream(InputStream ...

    Java 将文件转为字节数组知识总结及实例详解

    4. **获取字节数组** 当所有文件数据都被写入ByteArrayOutputStream后,我们可以使用`toByteArray()`方法将数据转换为字节数组。 ```java byte[] fileByte = bos.toByteArray(); ``` 5. **应用场景** 这种...

    ASM操作字节码,动态生成Java类class文件

    5. 使用`ClassWriter`生成字节码并将其转换为`byte[]`数组。 6. 最后,通过`ClassLoader`将生成的字节码加载为实际的Java类。 通过这样的方式,ASM可以帮助我们深入理解Java字节码,同时也为我们提供了强大的工具...

    Java中byte、byte数组与int、long的转换详解

    先将`long`值放入`ByteBuffer`,然后调用`array()`方法获取字节数组。 4. **整体工具类源码** 上述转换方法可以封装到一个工具类中,方便在项目中重复使用。例如,我们可以创建一个名为`DataConverter`的类,包含...

    android bitmap通过byte数组以流的形式创建

    在处理大量数据时,如从网络获取的字节数组,我们通常会使用`BitmapFactory.Options`来优化内存使用。这个类允许我们设置解码参数,如缩放比例、解码格式等,以减少内存消耗。 创建Bitmap的步骤如下: 1. **读取...

    认识Java的Class类.doc

    10. **方法的访问**:Class对象提供了`getMethod()`、`getDeclaredMethod()`等方法,可以获取类的方法信息,并通过`invoke()`方法动态调用方法。 总结来说,Java的Class类是理解Java运行时类信息的关键,它使得程序...

    关于java按字节截取带有汉字的字符串的解法

    // 获取字符串的字节数组,使用UTF-8编码 byte[] bytes = str.getBytes(StandardCharsets.UTF_8); if (byteLength &gt; bytes.length) { byteLength = bytes.length; } // 创建一个新的字节数组,只包含前...

    一个基于C# 实现的Image与Byte Array进行相互转换的Class类库源码及例子程序

    - 调用 `MemoryStream` 的 `ToArray` 方法,获取字节数组。 示例代码可能如下: ```csharp public byte[] ImageToByteArray(Image image) { using (var memoryStream = new MemoryStream()) { image.Save...

    一个简单的获取URL 数据方法,附文档代码

    本文将详细介绍一种简单有效的方式:通过Java语言编写一个类来获取指定URL的数据,并对该方法进行深入解析。 #### 一、背景介绍 在实际项目中,经常需要从网络上抓取数据,例如爬虫程序、数据同步等场景。本篇介绍...

    根据字节数截取字符串

    1. 使用`getBytes()`方法转换字符串为字节数组,传入特定的字符编码,例如UTF-8。 2. 计算字节数组的长度,即字节数。 3. 根据目标字节数,遍历字节数组来找到对应的字符边界。 4. 使用这些边界值来调用`substring()...

    网络类加载器实现

    4. **类的定义**:使用`defineClass()`方法将字节数组转换为Java类。这个方法会将字节数组转换为`java.lang.Class`对象,然后返回。 5. **异常处理**:处理可能发生的网络错误、文件找不到错误等异常,确保类加载...

    CByteArrayFile -- A class used to serialize object with data

    1. **序列化**:类可能会有一个`Serialize`方法,用于将对象转换成字节数组。这个过程通常涉及遍历对象的所有成员,将它们的值转化为字节并添加到数组中。为了实现这一点,对象通常需要支持某种形式的访问器(getter...

    arraycrypt_C#_

    例如,你可能需要使用`System.Text.Encoding.UTF8.GetBytes`方法将字符串转换为字节数组,或者使用`Convert.FromBase64String`方法将Base64编码的字符串解码为字节数组。 总的来说,"arraycrypt_C#_"这个主题涵盖了...

    c# 获取字符串的字节数的方法

    ”,所以可以由此来进行判断 代码如下:class StringOP { ///  /// 获取中英文混排字符串的实际长度(字节数) ///  /// ”str”&gt;要获取长度的字符串 /// 字符串的实际长度值(字节数) public int getString...

    ASM字节码操作简单实例

    1. **获取ClassWriter对象**:ASM中的`ClassWriter`类用于生成字节码。首先,我们需要创建一个`ClassWriter`实例,传入一个标志来决定是否优化生成的字节码。 2. **定义类结构**:使用`ClassWriter`的`visit`方法来...

    C/C++中获取数组长度的方法示例

    在C/C++编程中,获取数组长度是一个常见的需求,但需要注意的是,这两种语言并没有内置的函数可以直接获取数组的长度。通常,我们可以通过两种方式来获取数组的元素个数,即计算数组占用的内存大小除以单个元素的...

    C,C#webservice 返回数组,二进制

    // 读取图片文件到字节数组 byte[] imageData = File.ReadAllBytes("path_to_image.jpg"); return imageData; } ``` 接下来,我们需要在C#客户端中调用这些Web服务方法。使用`System.Net.WebClient`类或者`...

    Java中的MessageDigest类及digest()方法详解与示例

    3. **获取哈希值**:最后,调用`digest()`方法,它会返回一个字节数组,表示计算后的哈希值。如果需要以十六进制字符串的形式显示哈希值,需要将这个字节数组转换为字符串,这通常通过遍历字节数组并将其转换为对应...

Global site tag (gtag.js) - Google Analytics