10

手动打包输出后端jar

 3 years ago
source link: https://wakzz.cn/2017/10/03/java/%E6%89%8B%E5%8A%A8%E6%89%93%E5%8C%85%E8%BE%93%E5%87%BA%E5%90%8E%E7%AB%AFjar/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

输出可以依赖指定路径的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.0
Class-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.jar
Main-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

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK