
假设包含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包中的配置文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)