首先,我們想要達到的效果是,在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包即可。
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