亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Java包如何更新包里的Class,或重新打包

2019-11-15 00:39:28
字體:
來源:轉載
供稿:網友
java包如何更新包里的Class,或重新打包

這里主要介紹 用基礎命令的形式執行的方法:

主要用到的只是,javac,jar, java(*.exe)命令,

一.javac[Java源文件編譯成Class]

1.常用指令:  javac-cp指定多個classpath

javac -classpath可以指定類路徑 來編譯java文件如:javac -classpath **/servlet-api.jar **.java 來編譯某個java文件需要指定多個路徑?  是用分號 ;隔開如:javac -cp classes; C:/Tomcat/lib/servlet-api.jar -encoding UTF-8 BeerSelect.java

(直接敲在CMD里面的)這就是用classes下的類文件和 servlet-api.jar一起來編譯

BeerSelect.java

PS: 這里要記住重點,在運行這個主程序的時候有可能用到的.jar包都需要把classpath指定,

內部編譯引用時才不會報錯,如果工程小,包不是很多,不太看重編譯時效的話,可以建議把工程

的包多放在一個類庫文件下。而打包時也把這個文件夾下的jar包全編譯到。

另,-encoding UTF-8是如果待編譯文件不全是英文,即’有漢字之類的,可以設置編碼,省的

編譯報錯。

2.其他指令或參數可以在CMD中輸入"javac"(plus enter key)或者“javac -help”

(plus enter key)看到注釋:

用法:javac <選項> <源文件>

其中,可能的選項包括: -g 生成所有調試信息 -g:none 不生成任何調試信息 -g:{lines,vars,source} 只生成某些調試信息 -nowarn 不生成任何警告 -verbose 輸出有關編譯器正在執行的操作的消息 -dePRecation 輸出使用已過時的 API 的源位置 -classpath <路徑> 指定查找用戶類文件的位置 -cp <路徑> 指定查找用戶類文件的位置 -sourcepath <路徑> 指定查找輸入源文件的位置 -bootclasspath <路徑> 覆蓋引導類文件的位置 -extdirs <目錄> 覆蓋安裝的擴展目錄的位置 -endorseddirs <目錄> 覆蓋簽名的標準路徑的位置 -d <目錄> 指定存放生成的類文件的位置 -encoding <編碼> 指定源文件使用的字符編碼 -source <版本> 提供與指定版本的源兼容性 -target <版本> 生成特定 VM 版本的類文件 -version 版本信息 -help 輸出標準選項的提要 -X 輸出非標準選項的提要 -J<標志> 直接將 <標志> 傳遞給運行時

二.jar[*.jar Java中引用到的包的操作]

1.常用指令:  jar cf 更新指定包里的指定文件或重打包

e.g. : %JAVA_HOME%/bin/jar cf lib/A.jar sample/B.class (這種格式多是寫在*.bat等

批處理文件來執行的,下同)

而利用jar命令直接修改包里面的文件(通常是Class文件)時,一定要很了解原包的結構再動手。

而且記住一個原則,包的引用和實際結構的關系是"." == "/"(解壓后會發現是實際的文件夾)

2.其他指令或參數可以在CMD中輸入"jar"(plus enter key)或者“jar -help”(plus enter key)

看到注釋:

用法:jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目錄] 文件名 ...   

  選項:   

  -c 創建新的存檔

  -t 列出存檔內容的列表

  -x 展開存檔中的命名的(或所有的〕文件

  -u 更新已存在的存檔

  -v 生成詳細輸出到標準輸出上

  -f 指定存檔文件名

  -m 包含來自標明文件的標明信息

  -0 只存儲方式;未用zip壓縮格式

  -M 不產生所有項的清單(manifest〕文件

  -i 為指定的jar文件產生索引信息

  -C 改變到指定的目錄,并且包含下列文件:  

  如果一個文件名是一個目錄,它將被遞歸處理。   

  清單(manifest〕文件名和存檔文件名都需要被指定,按'm' 和 'f'標志指定的相同順序。

首先在資源文件當前目錄寫一個清單文件example.mf

簡單例子可參看:  http://blog.csdn.net/studyvcmfc/article/details/7745500

三.java[Class文件實際運行]

這個應該都比較熟,就是執行Java的Class文件(最后一步)’

java -cp .;c:/dir1/lib.jar Test -cp 和 -classpath 一樣,是指定類運行所依賴其他類的路徑,通常是類庫,jar包之類,需要

全路徑到jar包,window上分號“;”

又> e.g. : @"%JAVA_HOME%/bin/java" -cp lib/A.jar; ......sample.B "%~1"

同理可以用java或Java -help來查看:

options命令行選項(網上沒找到中文的,自己現在用的也不是中文,湊合先看著吧,用中文系統的,自己打下試試,很簡單的)Usage: java [-options] class [args...] (to execute a class) or java [-options] -jar jarfile [args...](to execute a jar file)where options include: -client to select the "client" VM -server to select the "server" VM -hotspot is a synonym for the "client" VM [deprecated] The default VM is client. -cp <class search path of directories and zip/jar files> -classpath <class search path of directories and zip/jar files> A ; separated list of directories, JAR archives, and ZIP archives to search for class files. -D<name>=<value> set a system property -verbose[:class|gc|jni] enable verbose output -version print product version and exit -version:<value> require the specified version to run -showversion print product version and continue -jre-restrict-search | -jre-no-restrict-search include/exclude user private JREs in the version search -? -help print this help message -X print help on non-standard options -ea[:<packagename>...|:<classname>] -enableassertions[:<packagename>...|:<classname>] enable assertions -da[:<packagename>...|:<classname>] -disableassertions[:<packagename>...|:<classname>] disable assertions -esa | -enablesystemassertions enable system assertions -dsa | -disablesystemassertions disable system assertions -agentlib:<libname>[=<options>] load native agent library <libname>, e.g. -agentlib:hprof see also, -agentlib:jdwp=help and -agentlib:hprof=help -agentpath:<pathname>[=<options>] load native agent library by full pathname -javaagent:<jarpath>[=<options>] load Java programming language agent, see java.lang.instrument

總之步驟順序(1,2,3步)不要搞錯了就可以,有忘了的參數再去度娘查。

例‘(在Bat中代碼)

bat1.bat source

----------------------------------------------------------

REM @echo offREM 將B.java重新編譯成B.class%JAVA_HOME%/bin/javac -cp lib/A.jar;...... -encoding UTF-8 sample/B.javaREM 更新S.jar中B.class%JAVA_HOME%/bin/jar cf lib/S.jar sample/B.classREM 設置內部環境變量(這步看source情況,有的不需要)set FUNC_LANG=zhset INNER_HOME=...PATH=%INNER_HOME%/bin;%PATH%REM 實際調另外的.bat文件運行.java文件bat2.bat sampleFile/test.tif>C:/test/result.txt

bat2.bat source

----------------------------------------------------------

@"%JAVA_HOME%/bin/java" -cp lib/A.jar;... -Dxx=%ss% sample.B "%~1"

這個例子目的主旨是修改lib文件夾下的S.jar(..lib/S.jar) 中的B.class文件,更新即可

S.jar Tree:

S.jar |_____sample | |______B.class |_____META-INF

         |______MANIFEST.MF

所以還是那句話,要改包,提前必須熟悉后這個包的結構,備份一個,然后再改。

※:最后提示一個很容易被忽略的關鍵點,在編譯的第1步中,實體source存放,如果

不想改很多source,一次編譯完,并且在第2步直接更新對應包對應關系目錄下的

Class的話。自己重寫后的.java文件保存位置,一定要營造一個和將要改的包的相對

位置關系一樣的路徑,否則出錯。如這里:若自己重寫了B.java文件,那么就要在

source目錄下,建立一個sample文件夾,并把自己重寫的B.java文件放進去。

這個一般也能從B.java里的首行 package sample; 這樣的代碼里看出來。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产成人精品在线| 国产精品美女av| 亚洲激情视频在线播放| 欧美xxxx18国产| 97免费视频在线| 欧美另类在线观看| 国产亚洲欧美日韩美女| 精品二区三区线观看| 国产精品成人观看视频国产奇米| 久久精品中文字幕免费mv| 欧美大片在线看免费观看| 国产精品欧美日韩| 97在线视频国产| 国产精品扒开腿做爽爽爽的视频| 欧美性猛交xxxx富婆| 国产精品久久久久久av| 午夜精品久久久久久久白皮肤| 欧美日韩亚洲精品一区二区三区| 中文字幕亚洲精品| 国产精品嫩草影院一区二区| 色偷偷av亚洲男人的天堂| 日韩电影网在线| 亚洲最大av网站| 97香蕉超级碰碰久久免费的优势| 九九久久综合网站| 日韩天堂在线视频| 亚洲网址你懂得| 亚洲精品自拍视频| 最好看的2019年中文视频| 九九热最新视频//这里只有精品| 亚洲精品一区久久久久久| 国产v综合ⅴ日韩v欧美大片| 97国产真实伦对白精彩视频8| 午夜精品一区二区三区视频免费看| 国产亚洲a∨片在线观看| 亚洲最新在线视频| 97超碰国产精品女人人人爽| 欧美午夜精品久久久久久人妖| 92看片淫黄大片看国产片| 亚洲欧美精品在线| 亚洲性线免费观看视频成熟| 国产精品a久久久久久| 国产精品日韩在线一区| 久久精品免费电影| 中文字幕视频在线免费欧美日韩综合在线看| 欧美肥臀大乳一区二区免费视频| 日韩a**中文字幕| 一个人看的www久久| 亚洲a成v人在线观看| 国产精品久久久久秋霞鲁丝| 亚洲性猛交xxxxwww| 91视频免费网站| 91日韩在线播放| 欧美超级免费视 在线| 91免费高清视频| 97视频在线播放| 亚洲人av在线影院| 日韩免费观看av| 国产精品久久久久久久av电影| 欧美乱大交做爰xxxⅹ性3| 国产成人aa精品一区在线播放| 国产精品夜间视频香蕉| 日韩女优人人人人射在线视频| 中文字幕欧美在线| 91精品国产91| 国产日韩欧美在线视频观看| 一本色道久久综合亚洲精品小说| 一区二区三区高清国产| 欧美激情网站在线观看| 久久人91精品久久久久久不卡| 亚洲的天堂在线中文字幕| 欧美日韩一区二区免费视频| 国产精品久久久久久中文字| 久久人人爽人人爽人人片av高清| 久久久久久国产三级电影| 欧美激情亚洲激情| 亚洲一区二区久久久久久| 国产精品v片在线观看不卡| 欧美成人精品在线| 国产精品视频久久久| 日韩成人在线播放| 亚洲一区二区三区sesese| 欧美国产视频日韩| 国产亚洲精品美女久久久久| 国产欧美日韩丝袜精品一区| 欧美亚洲午夜视频在线观看| 青青草原一区二区| 日本19禁啪啪免费观看www| 91网站免费观看| 日韩成人中文字幕在线观看| 久久五月天综合| 久久亚洲精品视频| 日韩av网站导航| 97久久精品人搡人人玩| 日本久久久久久久久久久| 日韩美女毛茸茸| 成人国产亚洲精品a区天堂华泰| 在线看国产精品| 日韩电影免费在线观看中文字幕| 久久av在线播放| 久久成人这里只有精品| 日韩电影第一页| 欧美激情第一页xxx| 久久免费高清视频| 国产亚洲精品成人av久久ww| 日韩视频免费中文字幕| 亚洲精品白浆高清久久久久久| 国产精品入口夜色视频大尺度| 国产午夜精品视频免费不卡69堂| 欧美有码在线观看视频| 97视频在线观看网址| 久久99精品国产99久久6尤物| 亚洲免费电影在线观看| 久久久噜噜噜久久中文字免| 国产成人亚洲综合91精品| 亚洲精品美女在线| 国模gogo一区二区大胆私拍| 久久这里只有精品视频首页| 亚洲色图日韩av| 91av免费观看91av精品在线| 日韩精品亚洲视频| 日韩精品中文字幕在线观看| 欧美精品久久久久久久久久| 91夜夜揉人人捏人人添红杏| 久久九九精品99国产精品| 亚洲天堂一区二区三区| 欧美xxxwww| 亚洲精品电影网在线观看| 精品亚洲一区二区| 亚洲国产精品福利| 自拍偷拍亚洲欧美| 日韩精品亚洲精品| 精品国偷自产在线视频99| 国产精品美女午夜av| 亚洲国产精品专区久久| 亚洲人成五月天| 色综合久久中文字幕综合网小说| 国内精品久久久久久中文字幕| 国产婷婷色综合av蜜臀av| 日韩性生活视频| 91av在线不卡| 久久999免费视频| 亚洲日本aⅴ片在线观看香蕉| 亚洲精品国产品国语在线| 日韩欧美在线视频观看| 欧美另类99xxxxx| 国产精品一区二区电影| 国产成人综合av| 一区二区三区视频免费在线观看| 亚洲福利影片在线| 色www亚洲国产张柏芝| 亚洲欧洲国产伦综合| 国产一区二区黑人欧美xxxx| 久久久久久九九九| 日韩欧美在线国产| 国产精品黄视频| 在线播放国产一区中文字幕剧情欧美| 久久精品在线播放| 亚洲天堂日韩电影| 久久在精品线影院精品国产| 欧美激情一区二区三级高清视频| 日韩成人在线视频观看| 亚洲欧美一区二区三区情侣bbw| 久久精品国产亚洲精品2020|