首先,我们想要达到的效果是,在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://*.com/questions/16222748/building-a-fat-jar-using-maven
http://www.cnblogs.com/enshrineZither/p/3441750.html