摘要:Java 打包Jar,One-Jar,將引用jar檔,包進jar檔中
因為引用太多外部jar檔,
但交付時,希望檔案越少越好,也不希望別人看到我們引用了哪些檔案。
這時候會需要包jar檔,並且jars to jar,或 jar to jar 這樣,包成one-jar。
網路有神人寫了文章,如何One-Jar Quick Start ,我使用了他的Command導向的包jar方式,就不需要ant
http://sundoctor.iteye.com/blog/1290496
就自己寫寫批次檔,然後去跑就好了。
以下是我包jar過程。
首先你要包自己的jar檔,應該是不用寫manifest一樣行的通。
包自己的jar只需要下以下指令
jar cf jar-file-name input-file(s)
介紹一下jar後面的cf是什麼意思,
c 是create的意思,建立jar
f 是輸出成檔案的意思。
而還有jar tf jar-file,
t 是 table
就是列出jar檔包的內容
而jar xf jar-file
x 是 extract ,截取,或解壓縮的意思。
包jar相關語法可到官方文件查看
http://docs.oracle.com/javase/tutorial/deployment/jar/build.html
input-file(s)
你可以直接的指定資料夾 或使用 *.class
如果只有資料夾的話,就就會自動將資料夾及資料夾底下的子資料夾全部包進去。
當產生jar檔後
假設為sample.jar好了。
然後再依照神人寫的文章
建立
root
root/main
root/lib
將sample.jar放置root/main裡
將引用的lib放置root/lib裡
這樣就會有
root
root/main/sample.jar
root/lib/ ......A.jar B.jar
另外取得建立one-jar的jar檔。
http://one-jar.sourceforge.net/index.php?page=downloads&file=downloads
並解壓縮後,將資料放置root底下,將src砍掉
就會如以下
root/
root/com/....
root/doc/....
root/lib/A.jar B.jar ....etc
root/main/sample.jar
root/META-INF/....
root/.version
root/boot-manifest.mf
然後打開boot-manifest.mf
加入啟始Main-Class 及Class-Path