Java項目打包成可執行的Jar包(FatJar 或 Maven)

首先,我們想要達到的效果是,在Window下的cmd下能執行:java -jar xxxx.jar ,能執行到我設置的Main方法中。

類似:



方法一:

下面介紹大家使用FatJar的eclipse插件,它是可以將你的第三方包和你本地的代碼一起打成一個Jar的工具。着實好用(Maven包也可選擇)。

1.到網站上下載 net.sf.fjep.fatjar_0.0.31.jar 包,放到eclipse/plugins目錄下(我在文章後面放了該插件包,供下載)

2.重新打開eclipse ,右鍵可看到 Bulid Fat Jar 選項,打包即可
     Jar name: 要打包的存放路徑和名字
     Main-Class:程序主入口
     Class-Path:包含的第三方包名、多個包用空格隔開,如:lib\commons-logging.jar lib\log4j-1.2.17.jar
     建議Class-Paht留空,又下面的手動選擇Jar包即可。

3.如果第2步的Class-Path不填,可以在Next的jar包中選擇。(推薦這種,方便快捷)


4.在你指定的目錄下會生成一個你指定的名字的Jar包。


現在我們就可以通過命令行來啓動你的Java程序了。


方法二:

通過maven的pom.xml配置,來實現打包(含依賴包)。

1. 將你的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/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>net.hosensess</groupId>
	<artifactId>wxNotice</artifactId>
	<packaging>jar</packaging>
	<version>0.0.1-SNAPSHOT</version>
	<name>Remind Maven Webapp</name>
	<url>http://maven.apache.org</url>
	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
			<scope>test</scope>
		</dependency>
		<!-- 你的第三方依賴包集合 -->

	</dependencies>
	<build>
		<finalName>wxNotice</finalName>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-assembly-plugin</artifactId>
				<!-- version 換成最新的版本 -->
				<version>2.3</version>
				<configuration>
					<archive>
						<manifest>
							<addClasspath>true</addClasspath>
							<mainClass>fully.qualified.MainClass</mainClass>
						</manifest>
					</archive>
					<descriptorRefs>
						<descriptorRef>jar-with-dependencies</descriptorRef>
					</descriptorRefs>
					<archive>
						<manifest>
							<!-- 放上你項目中的主入口 -->
							<mainClass>net.hosensess.wx.main.Main</mainClass>
						</manifest>
					</archive>
					<!-- maven錯誤解決:編碼GBK的不可映射字符  -->
					<encoding>UTF-8</encoding>  
				</configuration>
				<executions>
					<execution>
						<id>assemble-all</id>
						<phase>package</phase>
						<goals>
							<goal>single</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
</project>

2.然後在Run As ->  Maven buil...中輸入package 來實現打包。

3.在項目的targe目錄下有兩個文件,一個是本地源碼的jar包(wxNotice.jar),還有一個包含所有第三方包的jar包(wxNotice-jar-with-dependencies.jar),明顯,第二種纔是我們想要的包。故,趕緊到你的命令行中驗證吧。





參考文章:

http://stackoverflow.com/questions/16222748/building-a-fat-jar-using-maven

http://www.cnblogs.com/enshrineZither/p/3441750.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章