Jar文件的小小总结(原创)
生活随笔
收集整理的這篇文章主要介紹了
Jar文件的小小总结(原创)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
我java菜鳥,最近一直用fat_jar打包,感覺什么都不會(huì),就一頓點(diǎn)擊next,實(shí)在學(xué)習(xí)不到東西,所有自己參考網(wǎng)上資料學(xué)習(xí)了一下。。。
1 jar文件打包基本的命令格式,我就不詳細(xì)說了.諸位只需要在cmd命令行下敲入jar命令,就可以出現(xiàn)各個(gè)參數(shù)的具體含義,而且說明的很清楚,其中還有兩個(gè)基本的例子。
2 打包單個(gè)文件夾下面的包,只需要jar -(這個(gè)橫線可有可無)cvf(一般來說是這三個(gè)選項(xiàng)組合在一起) 你的JAR名字 -C(可有可無) 你的包名
舉例如下: 假設(shè)我使用Eclipse建立d:\workspace\dizh\src\di\test\Test.java文件,那么我的命令格式: (前提是你進(jìn)入到src目錄下,并且編譯了Test.java
具體代碼如下:
package com
public Test{
public static void main(String[] args){
System.out.println("Hello");
}
}
jar -cvf MyFisrst.jar -C . di/test/Test.class????????? -------> 打包一個(gè)類文件
jar -cvf MyFisrst.jar -C . di/test/*?????????????????? -------> 打包test下面的所有類文件--->包含子文件夾
jar -cvf MyFisrst.jar -C . di/*??????????????????????? -------> 打包di下面的所有類文件--->包含子文件夾
jar -cvf MyFisrst.jar -C . di????????????????????????? -------> 打包di下面的所有類文件--->包含子文件夾
jar -cvf MyFisrst.jar -C di??????????????????????????? -------> 打包di下面的所有類文件--->包含子文件夾
以上命令對于只有單個(gè)文件時(shí)候,是等價(jià)的,我已經(jīng)測試過了,不是的時(shí)候我已經(jīng)加注釋了!!!(如果錯(cuò)了,請您提示我,我好修改)
打包成功后,會(huì)出現(xiàn)MyFirst.jar,如果你想生成可執(zhí)行的,我的辦法是,打開生成的jar包中的MAINFEST.MF文件,添加一行:
Main-Class: 你的包中可執(zhí)行的類? ---> 注意:后面有空格,并且最后要回車
在本例中就是
Main-Class: di.test.Test
之后,你就可以雙擊或者通過java -jar執(zhí)行了。
3 如果打包的時(shí)候包含多個(gè)包文件
設(shè)現(xiàn)在有兩個(gè)包:di/client/和di/common/,分別位于d:\workspace\dizh\src\di下,其中分別有Client.java和ThinkO.java類,其中Client.java調(diào)用ThinkO.java文件,那么我們的命令行格式是:
jar -cvf MySecond.jar -C . di/client/* di/common/*
jar -cvf MySecond.jar -C di/client/* di/common/*
上面兩種形式經(jīng)我測試,相同結(jié)果.如果你想生成可執(zhí)行Jar包,和上面2中同樣的原理修改。
至于如何加載第三方包,我目前還沒學(xué)習(xí),打算最近學(xué)習(xí)后,在詳細(xì)說明!!!
1 jar文件打包基本的命令格式,我就不詳細(xì)說了.諸位只需要在cmd命令行下敲入jar命令,就可以出現(xiàn)各個(gè)參數(shù)的具體含義,而且說明的很清楚,其中還有兩個(gè)基本的例子。
2 打包單個(gè)文件夾下面的包,只需要jar -(這個(gè)橫線可有可無)cvf(一般來說是這三個(gè)選項(xiàng)組合在一起) 你的JAR名字 -C(可有可無) 你的包名
舉例如下: 假設(shè)我使用Eclipse建立d:\workspace\dizh\src\di\test\Test.java文件,那么我的命令格式: (前提是你進(jìn)入到src目錄下,并且編譯了Test.java
具體代碼如下:
package com
public Test{
public static void main(String[] args){
System.out.println("Hello");
}
}
jar -cvf MyFisrst.jar -C . di/test/Test.class????????? -------> 打包一個(gè)類文件
jar -cvf MyFisrst.jar -C . di/test/*?????????????????? -------> 打包test下面的所有類文件--->包含子文件夾
jar -cvf MyFisrst.jar -C . di/*??????????????????????? -------> 打包di下面的所有類文件--->包含子文件夾
jar -cvf MyFisrst.jar -C . di????????????????????????? -------> 打包di下面的所有類文件--->包含子文件夾
jar -cvf MyFisrst.jar -C di??????????????????????????? -------> 打包di下面的所有類文件--->包含子文件夾
以上命令對于只有單個(gè)文件時(shí)候,是等價(jià)的,我已經(jīng)測試過了,不是的時(shí)候我已經(jīng)加注釋了!!!(如果錯(cuò)了,請您提示我,我好修改)
打包成功后,會(huì)出現(xiàn)MyFirst.jar,如果你想生成可執(zhí)行的,我的辦法是,打開生成的jar包中的MAINFEST.MF文件,添加一行:
Main-Class: 你的包中可執(zhí)行的類? ---> 注意:后面有空格,并且最后要回車
在本例中就是
Main-Class: di.test.Test
之后,你就可以雙擊或者通過java -jar執(zhí)行了。
3 如果打包的時(shí)候包含多個(gè)包文件
設(shè)現(xiàn)在有兩個(gè)包:di/client/和di/common/,分別位于d:\workspace\dizh\src\di下,其中分別有Client.java和ThinkO.java類,其中Client.java調(diào)用ThinkO.java文件,那么我們的命令行格式是:
jar -cvf MySecond.jar -C . di/client/* di/common/*
jar -cvf MySecond.jar -C di/client/* di/common/*
上面兩種形式經(jīng)我測試,相同結(jié)果.如果你想生成可執(zhí)行Jar包,和上面2中同樣的原理修改。
至于如何加載第三方包,我目前還沒學(xué)習(xí),打算最近學(xué)習(xí)后,在詳細(xì)說明!!!
總結(jié)
以上是生活随笔為你收集整理的Jar文件的小小总结(原创)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#三层结构(4)——扩展-加密字符窜源
- 下一篇: 消失的交换机