如何读取jar中的class文件

如何读取jar中的class文件,第1张

package eduhxraid;

import javaio;

public class Resource {

public void getResource() throws IOException{

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

InputStream is=thisgetClass()getResourceAsStream("/resource/restxt");

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

String s="";

while((s=brreadLine())!=null)

Systemoutprintln(s);

}

}

我们将java工程下/bin目录中的edu/hxraid/Resourceclass和资源文件resource/restxt一并打包进ResourceJarjar中,不管jar包在系统的任何目录下,调用jar包中的Resource类都可以获得jar包中的restxt资源,再也不会找不到restxt文件了

JavaEE是Java面向企业级开发语言;

Java分3部分:Javase,JavaEE,JavaME;分别是Java基础部分,Java面向企业级开发部分,Java手机端部分;

获取各种jar包可以到网上搜,想要什么jar包都有,一搜一大堆。

定制自己的类加载器,从指定的jar包中加载类就行了

一般动态加载类都是直接用ClassforName()这个方法,但这个方法只能创建程序中已经引用的类,并且只能用包名的方法进行索引,比如 JavalangString,不能对一个class文件或者一个不在程序引用里的jar包中的类进行创建。但使用URLClassLoader 就可以直接根据创建一个单独的class文件,并且每当重新载入后并实例化后都是最新的方法。类似于jsp,当你在eclipse中改了一个jsp并且存储后,只要刷新页面就可以得到最新的结果而不用重新启动服务器。

URLClassLoader是在javanet包下的一个类。他的构造函数输入参数需要输入1个URL数组。假设我们有一个编译后的class文件在 C:\URLClass\testClassclass中,URLClassLoader进行加载,其中有个方法为test,我们需要动态加载这个类并且运行test方法

Java代码

File xFile=new File("d:/xxjar");

URL xUrl= xFiletoURL() ;

URLClassLoader ClassLoader=new URLClassLoader(new URL[]{ xUrl });

Class xClass=ClassLoaderloadClass("testClass");

Object xObject=xClassnewInstance();

Method xMethod=xClassgetDeclaredMethod("test");

安装 Maven 之前要求先确定你的 JDK 已经安装配置完成。Maven是 Apache 下的一个项目,目前最新版本是 310,我用的也是这个。

首先去官网下载 Maven

下载完成之后将其解压,我将解压后的文件夹重命名成 maven,并将它放在 D:\Server 目录下,即 maven 最终的路径是:D:\Server\maven

配置 maven 环境变量:

系统变量:MAVEN_HOME = D:\Server\maven

用户变量:path = %MAVEN_HOME%\bin

找到了一个办法,你先按F3,然后点击Change Attached Source按钮,在d出的框里有个路径,我的路径是D:/SNSWorkSpace/JAR/~platformjar,然后你去引用Jar包的目录中找找看有木有platformjar,如果存在的话就用压缩工具打开看看是不是你要的Jar包,我的是这样找到的。

大部分java自带的类都在rtjar中,自己引入的jar里面的类的路径第二或第三个单词表示的是jar名,而最好的办法就是在Myeclipse或Eclipse等工具中点击这个类就可以清楚的看到在哪个jar下了。

以上就是关于如何读取jar中的class文件全部的内容,包括:如何读取jar中的class文件、JAVAEE 是什么,如何获取各种规范jar包及各种规范的jar包源码、在加载类时,如何指定所使用的jar包等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9303026.html

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

发表评论

登录后才能评论

评论列表(0条)

保存