工作中经常遇到客户要求我们开发一些小工具,比如批量数据导入、数据检查、自动爬虫等类型的小应用,这些应用不需要界面,只需提供一个可执行的jar包,然后写个批处理程序调用即可。
这里简单创建一个maven工程,无业务逻辑,主要介绍如何将maven工程打包为可执行的jar包,并输出为一个整体可运行的java小程序。
一、创建一个maven工程,工程结构如下图:
二、配置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>gz.jojoy</groupId>
<artifactId>TestToRunJar</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>TestToRunJar</name>
<properties>
<!-- 主要依赖库的版本定义 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.7</java.version>
<poi.version>3.10-FINAL</poi.version>
<slf4j.version>1.7.5</slf4j.version>
<logback.version>1.0.13</logback.version>
</properties>
<dependencies>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.0.13</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.0.13</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<excludes>
<exclude>*.properties</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.8.1</version>
<executions>
<execution>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
三、新建一个HelloJar.java类
package cn.jojoy.main;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class HelloJar {
protected static Logger log = LoggerFactory.getLogger(HelloJar.class);
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
log.info("========= Hello jar, " + i);
}
}
}
四、导出jar包
点击菜单 File -> Export...
弹出窗口,选择Java - Runnable JAR file,点击 Next >
选择程序入口类、JAR包输出路径和依赖包输出方式
点击Finish,完成jar包导出,在文件输出目录,可以找到导出的jar文件,以及依赖包文件夹。
五、加入jre,创建批处理脚本,调用程序。
将jre1.7复制到目录
新建一个名为run.bat的批处理
echo off
title TEST_RUN_JAR - %DATE% %TIME%
color 7
set path=./jre1.7/bin
java -jar ./testToRunJar.jar
pause
最终目录文件如图:
双击run.bat运行程序:
========================== END ==============================