Java中的几个.class文件怎么做成jar包

Java中的几个.class文件怎么做成jar包,第1张

假设包含main()方法的那个类生成的class为MyMainclass。

首先在class所在目录里新建文本文件:mymanifesttext,在该文件中写入:

Main-Class: MyMain 然后保存。注意冒号后有空格,MyMain后边换行。

然后用命令:

jar cvfm MyMainjar mymanifesttext MyMainclass

生成带清单文件mymanifesttext的jar文件MyMainjar。

使用命令:

jar cvfm MyMainjar mymanifesttext class

即可将所有的class文件包含到MyMainjar中了。

选中项目,邮件 properties--->Java build Path-->libraries--->add jars;save; 最好把这个jar包复制到你当前项目目录下,然后在添加。

先看代码目录结构:\x0d\src/weather/\x0d\QueryWeatherjava\x0d\weatherxml\x0d\程序里面可以直接读取到weatherxml文件,代码如下:\x0d\private static String getXmlContent()throws IOException {\x0d\FileReader f = new FileReader("src/weather/weatherxml");\x0d\BufferedReader fb = new BufferedReader(f);\x0d\StringBuffer sb = new StringBuffer("");\x0d\String s = "";\x0d\while((s = fbreadLine()) != null) {\x0d\sb = sbappend(s);}return sbtoString();}但是一旦把这个class文件和xml文件打成jar包再运行,对不起,报错,QueryWeatherclass字节码根本找不到weatherxml\x0d\在看打成jar包的结构:META-INFMANIFESTMFweatherQueryWeatherclass\x0d\weatherxml\x0d\用下面的方法就可以找到weatherxml\x0d\private static String getXmlContent()throws IOException {\x0d\Reader f = new InputStreamReader(QueryWeatherclassgetClass()getResourceAsStream("/weather/weatherxml"));\x0d\BufferedReader fb = new BufferedReader(f);\x0d\StringBuffer sb = new StringBuffer("");\x0d\String s = "";

该过程需要经历四个步骤:解压,反编译,修改,打包。

解压:jar文件和我们平常的rar和zip文件一样是属于压缩文件,通过一般的解压缩工具(例如:winrar)都能解压。解压之后生成的文件为class的字节码文件。

反编译:互联网上有很多的字节码文件反编译工具(例如:jad)。他能够将class文件或者直接能够将jar文件反编译为java文件。

得到java文件以后就可以修改里面的源代码了。

将修改好的代码编译成class字节码文件以后再添加替换掉原来jar包中的class文件,或者重新将修改后的java代码转换成java工程,再生成jar文件都行。

这个过程的完成需要熟悉java基础,编译环境等相关知识。尤其是对jar包的理解很重要。反编译在互连网上就能直接找到很多工具。打包则很简单不做累述。

获取jar包的路径的方法:

xxxxxclassgetProtectionDomain()getCodeSource()getLocation()

其中xxxxx是类名

以上就是关于Java中的几个.class文件怎么做成jar包全部的内容,包括:Java中的几个.class文件怎么做成jar包、如何对lib下jar包中class文件解密、jar包里面的代码如何读取jar包中的配置文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/web/10183466.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存