jar包中的代码在myeclipse中只能进行查看,并不能进行修改。
一、修改或者查看jar包中的内容
查看:可以使用解压缩软件直接查看
修改:直接将文件名的后缀名改为xxx.zip,或者使用解压缩软件解压缩以后进行修改。
如果jar包中不含源代码,可以使用相关的反编译软件将.class文件反编译回.java文件(但是反编译的结果会有一定的偏差)。
有源代码的前提下,对源代码进行相应修改以后,要编译成.class文件,jar包中主要应该存放的是 .class文件, .java源文件只是方便使用者查看了解使用方法。
二、将 .java文件编译成 .class文件时遇到的问题
我使用的是最原始的方法,在cmd中使用javac命令进行编译。(好像也可以使用eclipse来对java文件进行运行,然后会在某个文件夹中生成对应的.class文件)
首先,cmd的相关命令:进入到对应的文件夹下,(cd .. 表示返回上一级目录 cd xxx 表示进入下一级的某个目录)
然后当编译一个Java文件需要引用另一个class文件,即本java文件需要引用到别的自己写的类时,先将前一个类编译好,再编译本类。(如果彼此之间有相互引用并且正好在一个目录下时,可以在该目录下
,直接将两个一起同时编译了)
如果java文件有需要引入外部别的jar包时,需要用到-cp命令:
加载单个jar包。需要下载用到的jar包,并引入目录。
javac -cp C:\Users\whr-pc\Desktop\classpath\img\json-lib-2.4-jdk15.jar Json.java
加载多个jar包,中间用 ;隔开。
javac -cp C:\Users\whr-pc\Desktop\classpath\img\json-lib-2.4-jdk15.jar;jdom-1.0.jar;spring-json-1.3.1.jar Json.java
当编译时出现编码GBK的不可映射字符的报错时,说明源代码里的中文出现了编码错误,可以将源代码使用notepad++(一种高级记事本)打开,点击上方菜单栏的编码,选择将编码转化为ANSI,然后再进行编译,编译就会通过。
注意,全部.java文件编译好以后,一定要再使用notepad++用类似的操作,将编码再转回UTF-8,这样在myeclipse中查看相关java源代码文件的时候,中文才不会变成乱码影响阅读。
同时注意,如果改动了java文件的相关层级结构,在java文件的首句package cn/... 应该进行对应改动,不是从jar包的名字开始,而是从jar包的下一个层级开始。后期加入到myeclipse中,其它引用了这个jar包的也用对包进行同样的更改。
三、对修改好以后的文件打成jar包
同样通过cmd到指定目录下,然后使用jar命令 jar -cvf [jar包的名字] [需要打包的文件] 例如jar -cvf my.jar com
然后会生成一个名为my.jar的jar包,在其中会比之前没有打包成jar包时多一个
文件夹,并且这个文件夹一定要在jar包的第一层目录下,不能移动到别的再下层目录中,否则导包的时候就会出现,导包能顺利进行,但是读不出来jar包里面的具体内容。 将整个jar包放在项目对应的WebRoot\WEB-INF\lib,然后在myeclipse中的相应文件夹下右键选择refresh进行刷新,比上方的刷新图标要快且管用。接着在项目下对应的
处右键选择build path,然后configure buildpath,libraries选项卡右侧选择add jars,将相关的jar包选中加入,然后就完成啦!