读取Class文件

读取Class文件,第1张

这里有两个点需要注意

类中握改庆的各个段握字段

可歼粗以看到都是软引用,目的应该是缓存

而在debug的时候,装载了类文件,在没有调用相关函数的时候,这些字段都显示为null,调用了之后才会有对象,并不是读到了空的类,这么设计的目的可能是为了方便JVM回收吧,以后再详细看看。

Tomcat通过使用ClassLoader来读取其他文件夹下的class文件,并将其加载到内存中,然后使用反射机制来调用其中的方法,从而实现槐游闹启动。Tomcat的ClassLoader是一个层次磨正结构,它可以从多个路径中加载class文件,而且可以按照自定义的顺序加载。Tomcat可以从多个路径中加载class文件铅罩,例如:WEB-INF/classes,WEB-INF/lib,Tomcat/lib,Tomcat/bin等。Tomcat在启动的时候,会先加载Tomcat/bin目录下的class文件,然后加载WEB-INF/lib目录下的class文件,最后加载WEB-INF/classes目录下的class文件。

package edu.hxraid

import java.io.*

public class Resource {

public void getResource() throws IOException{

//返回读取指定资源的输入流

InputStream is=this.getClass().getResourceAsStream("/resource/res.txt")

BufferedReader br=new BufferedReader(new InputStreamReader(is))

String s=""

while((s=br.readLine())!=null)

System.out.println(s)

}

}

我们将java工程下/bin目录中的edu/hxraid/Resource.class和资源枣运文件resource/res.txt一并打包进ResourceJar.jar中,不管jar包在系统的任何目录下,调用jar包中虚衡的Resource类都可以获得jar包中的res.txt资源,再也不会找不到凳誉梁res.txt文件了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8158133.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存