eclipse依靠MANIFEST.MF把依赖打成jar包部署方案。

第一步,点击项目,新建MANIFEST.MF文件。

注意凡是 :号后一定要空格,一行结束空一格换行。

注意Class-Path 多jar包依赖时,每个jar包前后各空一个。

最后一行结束后,后边跟俩个空行。

注意jar包名称。

 

Manifest-Version: 1.0
Class-Path: lib/commons-dbutils-1.7.jar
 lib/c3p0-0.9.5.5.jar
 lib/mysql-connector-java-5.1.48-bin.jar
 lib/commons-pool2-2.8.0.jar
 lib/commons-logging-1.2.jar
 lib/mchange-commons-java-0.2.20.jar
Main-Class: data.source.Test

第二步

点击项目右键,Export,java下JAR file包,点next。输入jar包名称,导出的目录。

点击next,再点击next,选中Use existing manifest from workspace,在Manifest file点击Browse...选中编辑好的那个MANIFEST.MF

最后点击finish。如果有compiler告警之类的,先不用管。如下所示

JAR export finished with warnings. See details for additional information.

  Exported with compile warnings: okHeny/src/data/source/JDBCUtils.java

  Exported with compile warnings: okHeny/src/data/source/Test.java

如果有如下提示,说明MANIFEST.MF格式错了

JAR creation failed. See details for additional information.

  invalid header field

  invalid header field

如果出现如下情况,说明MANIFEST.MF引入的包不正确。请查看.MF 文件是否写错。

 

最后一步,在导出的jar包目录中,新建一个lib文件夹,然后把依赖的jar拷贝进去。

java -jar XXX.jar  就会自动引入依赖包。

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/dbutils/ResultSetHandl
er
        at data.source.Test.main(Test.java:21)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.dbutils.ResultSetHandler
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 1 more

 

注意MANIFEST.MF格式,注意依赖包的名称,注意提示。

运行环境,jdk安装好,配置后环境变量。确保java命令可以正常执行。

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值