將Java專案打包成可執行的jar包
一、通過 eclipse 自帶打包
測試專案:
Main.java
package com.bug; import org.junit.Test; public class Main { public static void main(String[] args) { test(); } @Test public static void test() { System.out.println("HelloWorld"); System.out.println("HelloWorld"); System.out.println("HelloWorld"); System.out.println("HelloWorld"); System.out.println("HelloWorld"); System.out.println("HelloWorld"); } }
1.右鍵專案資料夾,點選export,選擇JAR flie點選next。
2.勾選要打包的資料夾,這裡只要勾選需要編譯的java檔案就可以了,下面的JAR file為打包後的儲存路徑和jar名稱,選擇好後點擊next。
Export generated class files and resources 表示只匯出生成的.class檔案和其他資原始檔
Export all output folders for checked projects 表示匯出選中專案的所有資料夾
Export java source file and resouces 表示匯出的jar包中將包含你的原始碼*.java,不想洩漏原始碼,那麼就不要選這項了
3.如下圖,點選next。
4.如下圖,Main class為專案入口路徑,點選後面的按鈕可以選擇專案入口路徑,選擇好後點擊finish即可完成打包。
Generate the manifest file:是系統幫我們自動生成MANIFEST.MF檔案,如果你的專案沒有引用其他class-path,那可以選擇這一項。
Use existing mainfest from workspace:這是可以選擇我們自定義的.MF檔案,格式如上所寫,引用了第三方包時選用。
Seal content:要封裝整個jar或者指定的包packet。
在打包好後有幾個問題需要注意:
1.MANIFEST.MF檔案需要根據自己的專案需要進行編寫替換,MANIFEST.MF檔案的修改需要嚴格遵守書寫規範,
首行為 Manifest-Version: 1.0
第二行為Class-Path: xxx.jar(依賴的jar,沒有就不寫)
第三行為Main-Class: 專案入口路徑
每個冒號後面需要有一個空格
每行結束不能有空格
Main-Class: 專案入口路徑 後面需要打兩個換行
如果依賴多個jar,則書寫完每個jar後空一格寫下一個
每行不能超過72個字元,如果每行寫一個jar,則每行開始空兩格。
lib/junit.jar org.hamcrest.core_1.3.0.v20180420-1519.jar,為我的 juit 需要的 jar 包,建立一個 lib 目錄儲存著兩個 jar 包。
2.使用eclipse將專案打包後,專案中實際調取的依賴和檔案等路徑一般需要和專案的jar存放到同一級目錄,否則會出現ClassNotFound等異常,放在同一級目錄也方便後面根據需求修改配置檔案。
3.編譯好的jar可以用java -jar xxx.jar執行,這種執行方式會在命令列或linux伺服器上顯示啟動和專案中的列印資訊,當使用Ctrl+C退出時,jar的執行也會終止。
二、使用 maven 打包
Maim
package com.bug.test; import org.junit.Test; public class Main { public static void main(String[] args) { test(); } @Test public static void test() { for(int i = 0; i < 10; i++) { System.out.println(i); } } }
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.bug</groupId> <artifactId>Test</artifactId> <version>0.0.1-SNAPSHOT</version> <!-- 依賴 --> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>RELEASE</version> </dependency> </dependencies> <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <artifactId>maven-assembly-plugin </artifactId> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <!-- 工程主類的全限定名 --> <mainClass>com.bug.test.Main</mainClass> </manifest> </archive> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project>
這樣也可以:
<build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> <archive> <manifest> <mainClass>com.bug.test.Main</mainClass> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> </manifest> </archive> <classesDirectory> </classesDirectory> </configuration> </plugin> </plugins> </pluginManagement> </build>
注意:如果工程上顯示紅叉。在專案上右鍵->maven->update project即可。
將程式打成jar包:
步驟詳情:右鍵->Run as->maven install。等待編譯完成就會在專案的target資料夾中生成jar包。如果看不到。在專案上右鍵->Refresh,即可看到。
參考:https://www.jb51.net/article/142553.htm
idea打包java程式(包含依賴的所有jar包):https://www.jb51.net/article/188851.htm
到此這篇關於將Java專案打包成可執行的jar包的文章就介紹到這了,更多相關Java打包成可執行ar內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!