手动打包输出后端jar

来源:互联网 发布:淘宝潮牌代购店铺推荐 编辑:程序博客网 时间:2024/06/11 01:23

1、目标

输出可以依赖指定路径的jar包,并能读取jar包外的配置文件的后端包

2、方式1

2.1 操作

2.2.1、右击后端项目,选择“Export”,选择“Runnable JAR file”。
这里写图片描述
2.2.2、选中第三种输出方式,输出jar。
这里写图片描述
2.2.3、输出的文件为运行jar和其依赖jar包。使用压缩工具打开运行jar“business.jar”,将根目录的配置文件删除。
这里写图片描述
这里写图片描述
2.2.4、将运行jar、依赖包和删除的配置文件放入同一级目录中。
这里写图片描述
2.2.5、输入命令运行。

java -jar business.jar

2.2、备注

该方法可以避免依赖的jar包环境配置问题,以及通过classpath获取的配置文件的路径问题。

2.3、原理

运行jar包中META-INF/MANIFEST.MF是关键。

Manifest-Version: 1.0Class-Path: . business_lib/mchange-commons-java-0.2.10.jar business_li b/c3p0-0.9.5.1.jar business_lib/commons-logging.jar business_lib/comm ons-pool2-2.4.2.jar business_lib/junit-4.12.jar business_lib/libthrif t-0.9.1.jar business_lib/log4j-1.2.17.jar business_lib/mybatis-3.2.8. jar business_lib/mybatis-paginator-1.2.17.jar business_lib/mybatis-sp ring-1.2.2.jar business_lib/mysql-connector-java-5.1.32.jar business_ lib/objenesis-2.1.jar business_lib/slf4j-api-1.6.6.jar business_lib/s lf4j-log4j12-1.6.6.jar business_lib/spring-aop-4.1.3.RELEASE.jar busi ness_lib/spring-beans-4.1.3.RELEASE.jar business_lib/spring-context-4 .1.3.RELEASE.jar business_lib/spring-core-4.1.3.RELEASE.jar business_ lib/spring-expression-4.1.3.RELEASE.jar business_lib/spring-jdbc-4.1. 3.RELEASE.jar business_lib/spring-test-4.0.4.RELEASE.jar business_lib /spring-test.jar business_lib/spring-tx-4.1.3.RELEASE.jar business_li b/hamcrest-core-1.3.jar business_lib/aopalliance-1.0.jar business_lib /gson-2.8.0.jar business_lib/commons-lang3-3.3.2.jar business_lib/txr edis.jar business_lib/jedis-2.9.0.jar business_lib/ini4j-0.5.4.jar bu siness_lib/txini-1.0.jar business_lib/cglib-nodep-2.1_3.jar business_ lib/rpc.jar business_lib/protocol-1.0.18.jarMain-Class: wxtx.sms.com.domain.TXServerMain

其中,Class-Path下的路径为设置为当前java项目运行的classpath。
“.”的所用为使当前路径的文件设置入classpath,因此根目录的配置文件可以被jar通过classpath获取。

3、方式2(推荐)

3.1、操作

3.3.1、将项目输出为普通jar包,但不要包含配置文件。
3.3.2、jar包和项目配置文件的结构如下图(当前路径即为项目的classpath),其中项目本身输出的jar包和其依赖包均放在文件夹lib下。
这里写图片描述
3.3.3、输入命令启动项目(wxtx.sms.com.domain.TXServerMain为项目启动入口主类)。

java -classpath "lib/*:." wxtx.sms.com.domain.TXServerMain
原创粉丝点击