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包選中加入,然後就完成啦!