Java創(chuàng)建可執(zhí)行的Jar文件的方法實(shí)踐
在Java中,通常將多個(gè)類合并到一個(gè).jar(“ java歸檔文件”)文件中。庫類以這種方式存儲(chǔ)。較大的項(xiàng)目使用jar文件。您也可以創(chuàng)建結(jié)合了多個(gè)類的自己的jar文件。
jar文件是使用JDK的jar.exe實(shí)用程序創(chuàng)建的。 通過告訴jar.exe哪個(gè)類具有main,可以使jar文件可運(yùn)行。 為此,您需要?jiǎng)?chuàng)建一個(gè)清單文件。 清單是帶有“ Main-Class”指令的單行文本文件。 例如:
Main-Class: io.github.jast90.test.Main
該行必須以換行符結(jié)尾。(即:多一行)
用主類清單創(chuàng)建的jar文件既可以用作庫,也可以用作可運(yùn)行的jar。 如果將其用作庫,則可以編輯和編譯jar中包含的任何類,然后將其添加到您的項(xiàng)目中。 然后它將覆蓋jar文件中的那個(gè)。
您可以在任何文本編輯器中創(chuàng)建清單文件,甚至可以使用MS-DOS echo命令創(chuàng)建清單文件。 您可以為清單文件指定任何名稱,但最好使用一些標(biāo)準(zhǔn)名稱,例如manifest.txt。
有了清單并編譯完所有類后,您需要運(yùn)行JDK的jar.exe實(shí)用程序。 它位于JDK的bin文件夾中,與javac.exe和java.exe相同。 jar.exe接受命令行參數(shù); 如果不帶任何參數(shù)運(yùn)行它,它將顯示用法信息和示例。 你需要
jar cvfm MyJarName.jar manifest.txt *.class
cvfm的意思是“創(chuàng)建一個(gè)jar;顯示詳細(xì)輸出;指定輸出jar文件名;指定清單文件名。” 這之后是您希望為jar文件指定的名稱,清單文件的名稱以及要包含在jar中的.class文件的列表。 * .class表示當(dāng)前目錄中的所有類文件。
實(shí)際上,如果清單僅包含Main-Class指令,則可以使用e開關(guān)(而不是m)直接在jar.exe的命令行上指定主類。 這樣就不需要單獨(dú)的清單文件了; jar將為您添加所需的清單到您的jar文件中。 例如:
jar cvfe MyJarName.jar MyMainClass *.class
以下是在Eclipse中創(chuàng)建jar文件的參考,IntelliJ DEA中創(chuàng)建Jar文件的參考,在Maven創(chuàng)建Jar文件的參考,以及在命令提示符和JCreator中執(zhí)行此操作的詳細(xì)步驟。
在Eclipse中創(chuàng)建jar文件
在Eclipse幫助內(nèi)容中,展開“ Java開發(fā)用戶指南” ==>“Tasks” ==>“Creating JAR files.”。按照“Creating a new JAR file”或“Creating a new runnable JAR file.”中的說明進(jìn)行操作。
出于某種原因,JAR File和Runnable JAR File命令位于File菜單下:?jiǎn)螕鬍xport …并展開Java節(jié)點(diǎn)。
在IntelliJ DEA中創(chuàng)建Jar文件
File -> Project Structure…->Project Settings->Artifacts-> + ->jar-> 選擇From modules with dependencies…->選擇module、Main Class、JAR files from libraries -> 勾選include in project build
在Maven創(chuàng)建Jar文件
在pom.xml文件中的maven-jar-plugin中指定mainClass,如下:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <mainClass>io.github.jast90.java.api.HashMapAnalyzer</mainClass> </manifest> </archive> </configuration> </plugin>
在JCreator中創(chuàng)建一個(gè)jar文件
您可以配置一個(gè)“tool”,以自動(dòng)執(zhí)行jar創(chuàng)建過程。您只需要做一次。
- 單擊Configure/Options
- 單擊左欄中的Tools。
- 單擊New,然后選擇Create Jar file。
- 在Tools下方的左列中,單擊新創(chuàng)建的條目Create Jar File。
- 編輯標(biāo)有“Arguments:”的中間行:輸入
cvfm $[PrjName].jar manifest.txt *.class
- 單擊OK。
現(xiàn)在為您的程序設(shè)置一個(gè)項(xiàng)目,創(chuàng)建一個(gè)清單文件manifest.txt或復(fù)制并編輯一個(gè)現(xiàn)有的項(xiàng)目。 將manifest.txt放在.class文件所在的文件夾中。 在“ View/Toolbars”下,選中“Tools”工具欄。 單擊相應(yīng)的tool按鈕,或者按Ctrl-1(如果這是第n個(gè)工具,則按Ctrl-n)以運(yùn)行“創(chuàng)建Jar文件”工具。
使用Windows資源管理器,轉(zhuǎn)到您剛創(chuàng)建的jar文件,然后雙擊運(yùn)行它。
在命令提示符下創(chuàng)建jar文件
- 啟動(dòng)命令提示符。
- 導(dǎo)航到保存您的類文件的文件夾:
C:\>cd \mywork
- 設(shè)置路徑以包含JDK的bin。例如:
C:\mywork> path c:\Program Files\Java\jdk1.7.0_25\bin;%path%
- 編譯你的類
C:\mywork> javac *.java
- 創(chuàng)建一個(gè)清單文件和您的jar文件:
C:\mywork> echo Main-Class: io.github.jast90.test.Main >manifest.txt C:\mywork> jar cvfm Craps.jar manifest.txt *.class 或者 C:\mywork> jar cvfe Craps.jar Craps *.class
- 測(cè)試你的jar
C:\mywork> Craps.jar 或者 C:\mywork> java -jar Craps.jar
參考
- https://www.skylit.com/javamethods/faqs/createjar.html
- https://docs.oracle.com/javase/8/docs/technotes/tools/unix/javac.html#BHCBDCJI
- https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jar.html#BGBFFFGG
- https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html#BGBCIEFC
到此這篇關(guān)于Java創(chuàng)建可執(zhí)行的Jar文件的方法實(shí)踐的文章就介紹到這了,更多相關(guān)Java創(chuàng)建可執(zhí)行Jar文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Idea自動(dòng)生成Entity實(shí)現(xiàn)過程詳解
這篇文章主要介紹了Idea自動(dòng)生成Entity實(shí)現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
手把手帶你分析SpringBoot自動(dòng)裝配完成了Ribbon哪些核心操作
這篇文章主要介紹了詳解Spring Boot自動(dòng)裝配Ribbon哪些核心操作的哪些操作,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-08-08
解決cmd運(yùn)行java程序“找不到文件”提示的方案
在本篇文章里小編給大家分享的是關(guān)于解決cmd運(yùn)行java程序“找不到文件”提示的方案,有需要的朋友們可以參考下。2020-02-02
Java實(shí)現(xiàn)文件點(diǎn)擊沒反應(yīng)的方法
jsp頁面鏈接,點(diǎn)擊訪問action用IO流去下載服務(wù)器上的文件,問題是任憑怎么點(diǎn)擊都沒反應(yīng),日志也不報(bào)錯(cuò)。這篇文章給大家介紹Java實(shí)現(xiàn)文件點(diǎn)擊沒反應(yīng)的方法,需要的朋友參考下吧2018-07-07
SpringBoot+MyBatis實(shí)現(xiàn)動(dòng)態(tài)字段更新的三種方法
字段更新是指在數(shù)據(jù)庫表中修改特定列的值的操作,這種操作可以通過多種方式進(jìn)行,具體取決于業(yè)務(wù)需求和技術(shù)環(huán)境,本文給大家介紹了在Spring Boot和MyBatis中,實(shí)現(xiàn)動(dòng)態(tài)更新不固定字段的三種方法,需要的朋友可以參考下2025-04-04
idea項(xiàng)目全局去掉嚴(yán)格的語法校驗(yàn)方式
這篇文章主要介紹了idea項(xiàng)目全局去掉嚴(yán)格的語法校驗(yàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。2023-04-04

