精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Java 以編程方式創建JAR文件

開發 前端
為了簡化創建JAR文件的過程,我們創建了一個單獨的、普通的舊Java對象(POJO)類,它封裝了我們的操作。我們可以將條目放入清單文件,創建JAR文件,添加文件或目錄。

大家好,我是指北君。

在這篇文章中,我們將介紹一下以編程方式創建jar文件的過程。在編寫軟件時,最終我們需要將其部署到生產狀態。在某些情況下,使用帶有獨立文件的classpath是可以的。通常情況下,處理一個文件會更方便。在Java的情況下,標準的方法是使用JAR、WAR或EAR文件。

基本過程是編寫清單,打開jar,添加內容,最后保存jar。

Jar文件的解剖

jar文件是ZIP文件格式的擴展,包含了一個清單文件。清單文件是JAR文件專用的特殊文件,可能包含各種設置。其中一些是主類、可選數據(即作者、版本等)和代碼簽名信息。

我們可以使用兼容zip的工具來查看和提取部分或全部存檔。我們還可以包括一個jars或libs子目錄,用于包含依賴性jar。由于jar是zip文件的擴展,我們可以包括任何文件或目錄。

創建一個 JarTool 類

為了簡化創建JAR文件的過程,我們創建了一個單獨的、普通的舊Java對象(POJO)類,它封裝了我們的操作。我們可以將條目放入清單文件,創建JAR文件,添加文件或目錄。

我們還可以創建方法來執行從JAR中刪除,甚至向現有的JAR追加條目,盡管這些操作需要完全讀取和重寫JAR。

JAR描述符

為了創建一個JAR文件,我們必須首先開始制定清單。

public class JarTool {    
private Manifest manifest = new Manifest();

public void startManifest() {
manifest.getMainAttributes().put(Attributes.Name.MANIFEST_VERSION, "1.0");
}
}

如果我們希望jar是可執行的,我們必須設置主類。

public void setMainClass(String mainFQCN) {
if (mainFQCN != null && !mainFQCN.equals("")) {
manifest.getMainAttributes().put(Attributes.Name.MAIN_CLASS, mainFQCN);
}
}

另外,如果我們想指定額外的屬性,我們可以把它們添加到清單中,比如說。

addToManifest("Can-Redefine-Classes", "true");

下面是這個方法。

public void addToManifest(String key, String value) {
manifest.getMainAttributes().put(new Attributes.Name(key), value);
}

打開JAR文件進行編寫

隨著清單的完成,我們現在可以把條目寫到JAR文件中。要做到這一點,我們必須首先打開JAR。

public JarOutputStream openJar(String jarFile) throws IOException {        
return new JarOutputStream(new FileOutputStream(jarFile), manifest);
}

將文件添加到JAR中

在向JAR中添加文件時,Java使用Solaris風格的文件名,使用正斜杠作為分隔符(/)。注意,我們可以添加任何類型的文件,包括其他JAR文件或空目錄。這對于包括依賴關系來說真的很方便。

另外,因為JAR文件是classpath的一種形式,我們必須指定我們希望在JAR中使用絕對路徑的哪一部分。對于我們的目的,根路徑將是我們項目的classpath。

了解了這一點,我們現在可以用這個方法完成我們的JarTool類。

public void addFile(JarOutputStream target, String rootPath, String source) 
throws FileNotFoundException, IOException {
String remaining = "";
if (rootPath.endsWith(File.separator)) {
remaining = source.substring(rootPath.length());
} else {
remaining = source.substring(rootPath.length() + 1);
}
String name = remaining.replace("\\","/");
JarEntry entry = new JarEntry(name);
entry.setTime(new File(source).lastModified());
target.putNextEntry(entry);

BufferedInputStream in = new BufferedInputStream(new FileInputStream(source));
byte[] buffer = new byte[1024];
while (true) {
int count = in.read(buffer);
if (count == -1) {
break;
}
target.write(buffer, 0, count);
}
target.closeEntry();
in.close();
}

一個工作實例

為了證明可執行jar的最低要求,我們將編寫一個應用類,然后看看它是如何工作的。

public class Driver {
public static void main(String[] args) throws IOException {
JarTool tool = new JarTool();
tool.startManifest();
tool.addToManifest("Main-Class", "com.javanorth.createjar.HelloWorld");

JarOutputStream target = tool.openJar("HelloWorld.jar");

tool.addFile(target, System.getProperty("user.dir") + "\\src\\main\\java",
System.getProperty("user.dir") + "\\src\\main\\java\\com\\javanorth\\createjar\\HelloWorld.class");
target.close();
}
}

HelloWorld類是一個非常簡單的類,只有一個main()方法可以打印出文本。

public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}

為了證明它的作用,我們有這個例子。

$ javac -cp src/main/java src/main/java/com/javanorth/createjar/HelloWorld.java
$ javac -cp src/main/java src/main/java/com/javanorth/createjar/JarTool.java
$ javac -cp src/main/java src/main/java/com/javanorth/createjar/Driver.java
$ java -cp src/main/java com/javanorth/createjar/Driver
$ java -jar HelloWorld.jar
Hello World!

在這里,我們已經編譯了每個類,然后執行了Driver類,這將創建HelloWorld jar。最后,我們執行了這個jar,結果是打印出了 "Hello World "信息。

上面的命令應該從項目所在地執行。

總結

在本教程中,我們看到了如何以編程方式創建一個jar文件,向其中添加文件,并最終執行。

責任編輯:武曉燕 來源: Java技術指北
相關推薦

2013-03-08 02:46:00

個人開發APP

2010-04-13 08:49:08

JavaLombokJavabean

2009-04-03 13:45:29

JavaiTextPDF

2020-08-28 09:40:51

Java開發代碼

2011-07-11 08:59:51

PHP

2021-08-02 11:13:28

人工智能機器學習技術

2020-11-28 19:37:03

MeldLinuxdiff命令

2016-02-23 09:23:32

2025-06-30 00:01:00

Node.js?Go線程

2019-12-12 10:46:15

Kubernetes容器系統

2020-01-15 13:50:29

桌面快捷方式Windows 10WiFi網絡

2021-02-27 16:08:17

Java異步非阻塞

2009-10-23 09:02:52

Linux系統安裝卸載文件操作系統

2022-04-27 09:39:11

Mixin工具

2012-09-17 10:35:41

JavaScriptJS代碼

2018-08-19 09:45:19

Windows 10藍屏死機轉儲文件

2010-01-25 17:33:25

Android Men

2020-08-18 10:04:49

大數據數據架構技術

2022-12-30 11:05:40

Rust代碼

2010-03-05 15:14:55

Ubuntu網絡配置
點贊
收藏

51CTO技術棧公眾號

欧美日韩你懂的| 久久欧美一区二区| 欧美激情在线一区| 私密视频在线观看| 欧美大片1688网站| 亚洲精品videosex极品| 久久久久国产精品视频| 中文字幕乱码中文字幕| 欧美日韩精品免费观看视频完整| 日韩不卡在线观看| 三级一区二区三区| 暖暖在线中文免费日本| 91视频国产观看| 91精品视频免费看| 久久国产视频一区| 99久久亚洲精品蜜臀| 欧美大片一区二区三区| 国产一区二区视频免费在线观看| 日本www在线| 91亚洲精品久久久蜜桃网站| 成人情趣片在线观看免费| 国产又爽又黄的视频| 91日韩欧美| 国产视频亚洲视频| 久草视频福利在线| 一区在线不卡| 91福利在线播放| 国产freexxxx性播放麻豆| 免费黄网在线观看| 国产蜜臀97一区二区三区| 国产精品久久亚洲7777| 国产一区二区三区黄片| 视频一区在线播放| 91福利视频在线观看| 欧美日韩在线国产| 欧美电影一区| 中文字幕亚洲无线码在线一区| 国产激情第一页| 视频一区视频二区欧美| 91精品久久久久久久久99蜜臂| 91免费视频网站在线观看| 青草在线视频| 1区2区3区国产精品| 香蕉久久夜色| 精品视频一二三| 99久久综合色| 精品国产一区二区三区久久久久久| 99热这里只有精品在线| 麻豆国产一区二区| 国产精品视频资源| 中文字幕久久久久| 免费视频最近日韩| 国产精品亚洲自拍| 在线观看中文字幕网站| 蜜桃一区二区三区在线观看| 国产激情久久久| 国产亚洲欧美日韩高清| 日日摸夜夜添夜夜添国产精品 | 日本在线观看视频| 中文字幕不卡的av| 色综合影院在线观看| www.亚洲.com| 国产精品电影院| youjizz.com亚洲| 超碰在线网址| 一区二区免费看| 欧美黑人在线观看| 98色花堂精品视频在线观看| 精品久久久久久中文字幕| 久草热视频在线观看| 在线播放高清视频www| 欧美性猛交xxxx免费看漫画| 日韩欧美xxxx| 24小时成人在线视频| 欧美一级午夜免费电影| 无码国产精品一区二区免费式直播| 7m精品国产导航在线| 亚洲国产日韩欧美在线99| 星空大象在线观看免费播放| 伊人久久大香线蕉无限次| 中文字幕v亚洲ⅴv天堂| 欧美日韩黄色网| 黄色亚洲精品| 日本欧美黄网站| 亚洲一区精品在线观看| 国产福利一区二区三区视频在线 | 久久99国产成人小视频| 伊人成人开心激情综合网| 你懂得在线观看| 狠狠爱综合网| 国产精品九九九| www日本高清视频| 91啪亚洲精品| 亚洲 欧洲 日韩| 国产传媒av在线| 欧美日韩另类一区| 国产一精品一aⅴ一免费| 亚洲成a人片77777在线播放| 中文字幕精品一区久久久久| 日本三级免费看| 蜜桃精品视频在线| 国产一区免费| 免费观看在线午夜影视| 精品久久久久久久久久久久久久 | 一区二区欧美在线| 免费中文字幕视频| 免费在线看成人av| 黄色国产精品一区二区三区| 调教视频免费在线观看| 亚洲va韩国va欧美va| 男女视频在线看| 男人的天堂久久| 久久视频免费在线播放| 免费av网站在线| 成人免费av资源| 中文字幕日韩精品一区二区| 在线高清av| 精品不卡在线视频| 天天鲁一鲁摸一摸爽一爽| 视频一区二区中文字幕| 国产久一道中文一区| 免费看美女视频在线网站| 日本高清无吗v一区| 制服丝袜av在线| 欧美1区2区| 91精品久久久久久久久久另类| 午夜小视频免费| 亚洲午夜精品17c| 一级黄色大片儿| 久久在线播放| 国产精品成人国产乱一区| 婷婷丁香一区二区三区| 亚洲自拍偷拍九九九| 污污的视频免费观看| 精品免费视频| 国产精品狠色婷| 男人的天堂在线视频| 欧美视频免费在线| 亚洲综合自拍网| 亚洲精选91| 国产一区二区无遮挡| 免费男女羞羞的视频网站在线观看| 欧美男人的天堂一二区| 欧美色图17p| 久久黄色级2电影| 一区二区不卡视频| 欧美日韩va| 久久激情视频免费观看| 91精品国自产| 1000精品久久久久久久久| 色噜噜狠狠一区二区| 日韩久久精品| 国产视频999| 精品孕妇一区二区三区| 欧美精品一级二级| 成年人一级黄色片| 国产精品一区二区久久不卡| 国产91在线亚洲| 国产香蕉精品| 人九九综合九九宗合| 黄色av网址在线免费观看| 在线免费观看成人短视频| 女女互磨互喷水高潮les呻吟 | 国产精品v片在线观看不卡| 国产最新视频在线观看| 精品视频色一区| 欧美视频www| 成人黄色一级视频| 人妻熟女一二三区夜夜爱| 嫩草影视亚洲| 国产欧美一区二区三区久久人妖| 麻豆传媒在线观看| 日韩欧美国产一区二区在线播放| 黄色小说在线观看视频| 91蝌蚪国产九色| 亚洲 欧美 日韩系列| 亚洲久久久久| 好看的日韩精品| 成人看片毛片免费播放器| 久久久精品久久久| 欧洲精品久久一区二区| 色老头久久综合| 99久久婷婷国产综合| 成人丝袜18视频在线观看| 日韩avxxx| 天天影视天天精品| 99精品欧美一区二区三区| 中文不卡1区2区3区| 色999日韩欧美国产| 午夜久久久久久噜噜噜噜| 精品久久久久人成| 欧美性生交大片| www.在线欧美| 久久精品国产99久久99久久久| 亚洲啪啪91| 伊人色综合影院| 日韩中出av| 97超碰最新| 欧美成人精品三级网站| 久久99亚洲热视| 国产一二三区在线视频| 精品国产一区二区三区四区四| 久久精品久久久久久久| 亚洲综合免费观看高清完整版在线 | 一区二区在线中文字幕电影视频 | 精品99一区二区| 中国黄色一级视频| 姬川优奈aav一区二区| 成年人二级毛片| 国产亚洲午夜高清国产拍精品| 日本在线视频播放| 蜜桃精品在线观看| 看av免费毛片手机播放| 欧美激情五月| 伊人精品久久久久7777| 亚洲影院天堂中文av色| 粉嫩av一区二区三区免费观看| 自拍偷自拍亚洲精品被多人伦好爽| 欧美成人性色生活仑片| 91大神在线网站| 精品一区二区三区四区在线| www.四虎在线观看| 欧美精品亚洲一区二区在线播放| 日韩不卡在线播放| 亚洲h在线观看| 欧美成欧美va| 亚洲日本在线视频观看| 日本乱子伦xxxx| 91美女片黄在线| 中文字幕无码人妻少妇免费| 国产成a人亚洲精品| 中文字幕12页| 国产综合色在线视频区| 亚洲 激情 在线| 日韩成人一区二区| 黄色国产小视频| 欧美中文字幕| 国产精品无码av在线播放| 亚洲人www| 国产午夜大地久久| 亚洲黄色精品| 欧美视频在线观看网站| 亚洲激情网址| 亚洲不卡中文字幕无码| 亚洲精品影院在线观看| 国产免费黄色av| 亚洲欧美成人综合| 国产精品秘入口18禁麻豆免会员| 亚洲另类自拍| 免费无码不卡视频在线观看| 国产亚洲亚洲| 蜜臀久久99精品久久久酒店新书| 丝袜美腿成人在线| 国产免费999| 久久99国产精品成人| 超碰人人草人人| 国产精品18久久久久| 91成人在线观看喷潮蘑菇| 成人免费视频caoporn| 99久久国产精| 久久精品水蜜桃av综合天堂| 亚洲午夜久久久久久久国产| 中文字幕免费一区| 黄色a级片在线观看| 亚洲伊人色欲综合网| 日韩少妇高潮抽搐| 色中色一区二区| 一级做a爱片久久毛片| 91精品国产综合久久婷婷香蕉| 国产福利第一视频| 亚洲国产精品高清久久久| 欧美成人片在线| 最近2019年日本中文免费字幕| 成人av福利| 97在线视频免费播放| 香蕉成人影院| 69174成人网| 亚洲精品合集| 黄频视频在线观看| 国产欧美日韩一区二区三区在线| 日韩av一二三四| 国产精品99久久久久久似苏梦涵| 精品国产乱码久久久久夜深人妻| 91蜜桃视频在线| 人妻少妇精品一区二区三区| 午夜电影网一区| 中文字幕在线网址| 亚洲成人xxx| 尤物网址在线观看| 国内精品一区二区三区| 日韩网站中文字幕| 风间由美久久久| 日韩成人综合| 国产 福利 在线| 国产一区二区精品久久99| 亚洲国产综合视频| 亚洲欧美另类在线| 中文在线第一页| 欧美xxxxxxxxx| 99视频在线观看地址| 性色av一区二区三区在线观看| 91精品国产经典在线观看| 国产一区二区不卡视频| 国产国产精品| 久草在在线视频| jiyouzz国产精品久久| 性欧美疯狂猛交69hd| 在线影视一区二区三区| 免费观看黄色一级视频| 久久久极品av| 成人国产网站| 欧美亚洲国产免费| 亚洲国产一区二区精品专区| 日韩a一级欧美一级| 久久精品欧美日韩| 亚洲 欧美 视频| 日韩精品专区在线| 国产在线激情视频| 国产精品日韩欧美| 久久国产精品免费精品3p| xxxxxx在线观看| 激情六月婷婷久久| 欧美福利在线视频| 在线看日韩精品电影| 亚洲欧洲精品视频| 国模私拍视频一区| 91精品国产自产在线丝袜啪 | 亚洲国产91| 亚洲国产欧美91| 亚洲欧洲日产国产综合网| 国产精品自拍第一页| 亚洲人成在线播放| 三妻四妾完整版在线观看电视剧 | 亚洲免费看av| 欧美激情一区不卡| 超碰在线观看91| 亚洲天堂影视av| 美女100%一区| 日本在线视频一区| 日韩精品亚洲专区| 一级黄色录像毛片| 欧美性色黄大片手机版| 国产精品天堂| 国产精品久久久久久久久久新婚| 国产一区二区三区网| 成年人在线看片| 国产午夜精品一区二区| 国产一级片免费视频| 中国日韩欧美久久久久久久久| 欧亚一区二区| 在线电影看在线一区二区三区| 狠狠色丁香久久婷婷综合丁香| 午夜国产福利视频| 日韩一区二区免费电影| 四虎影视成人| 国产伦精品一区二区三区四区免费 | 国产免费黄色网址| 欧美另类xxx| 久久精品凹凸全集| aaaaaa亚洲| 国产精品美女一区二区三区 | 午夜影院在线看| 亚洲精品在线看| 成人四虎影院| 99久re热视频精品98| 国产999精品久久久久久| 日韩福利片在线观看| 亚洲午夜小视频| 视频91a欧美| 国产资源在线免费观看| 久久一区二区三区国产精品| 中文无码av一区二区三区| 久久久999国产精品| 国产精品中文字幕制服诱惑| 每日在线更新av| 国产精品水嫩水嫩| a天堂视频在线| 欧美亚洲一区在线| 国产精品99一区二区三| 久久无码专区国产精品s| 色悠久久久久综合欧美99| 久草资源在线| 精品蜜桃一区二区三区| 久久草av在线| 国产成人啪精品午夜在线观看| 亚洲天堂成人在线| 久久精品一级| 久久午夜夜伦鲁鲁一区二区| 亚洲人妖av一区二区| 全色精品综合影院| 91在线高清免费观看| 亚洲欧美日韩国产一区| 男女做暖暖视频| 亚洲日韩欧美视频一区| 日韩视频一二区| 手机看片福利盒子久久| 亚洲一区二区精品久久av| 五月婷婷在线视频| 六月婷婷久久| 成人午夜大片免费观看|