【已解决】MyEclipse通过Export打jar包,详细介绍如何打引入外部jar包的情况,解决常见的报无主清单属性、外部依赖找不到问题~

本文讲述了作者在使用WindowsServer的定时任务功能从某平台下载数据并打包jar包时遇到的问题,重点介绍了手动编写MANIFEST.MF文件并处理外部jar包的步骤,以确保打包过程顺利进行。
摘要由CSDN通过智能技术生成

近况(问题描述)

最近我负责某项目,需要完成一项任务是打出jar包,通过window server服务器自带的任务计划程序(系统的定时任务创建程序),定时去某平台下载相关的数据,在打jar包的环节,我就遇到了一些奇怪的问题,在这里跟大家做一下分享,希望有遇到这类问题的小伙伴可以通过这篇文章得到些启发,希望可以帮到你。

打包方案

未引入外部jar包

未引用外部jar包的打包稍微简单点

1.手动编写MANIFEST.MF

项目中的MANIFEST.MF,一定要手动创建放在src/META-INF目录下,并且文件中的Main-Class:和Class-Path:后面一定要有一个空格;最后面的Class-Path:lib/commons-codec-1.6.jar lib/commons-logging-1.1.3.jar lib/dom4j-2.0.0.jar lib/fastjson-1.2.56.jar lib/gson-2.8.0.jar lib/httpclient-4.3.3.jar lib/httpcore-4.3.2.jar lib/music-sdk-java.jar lib/protobuf-java-3.0.0-beta-4.jar写完后,要点一下回车,保证最后面还有一个空行,经过验证,如果不加空行,最后的Class-Path会被吞掉!

2.右键项目,选择Export导出-->选择Java-JAR file

3.左侧的项目选择src以及一些你项目中必须的文件,都勾选上就行。Select the export destination中选择的Jar file,一定要和MANIFEST.MF中的Main-Class中指向的主启动类一直,比如主启动类是cma.music.demo.clib.StaElemSearchAPI.StaElemSearchAPI,那么这个地方的命名就是cma.music.demo.clib.StaElemSearchAPI.StaElemSearchAPI.j

4.点击next,进入到JAR Packaging Options页面,什么也不要勾选,直接next

5.进入到JAR Manifest Specification页面,一定要勾选Use existing manifest from workspace,其中的Manifest file选择我们项目中手动创建的MANIFEST.MF路径

6.点击finish即可!

引入外部jar包或配置文件

1.手动编写MANIFEST.MF

项目中的MANIFEST.MF,一定要手动创建放在src/META-INF目录下,并且文件中的Main-Class:和Class-Path:后面一定要有一个空格;最后面的Class-Path:lib/commons-codec-1.6.jar lib/commons-logging-1.1.3.jar lib/dom4j-2.0.0.jar lib/fastjson-1.2.56.jar lib/gson-2.8.0.jar lib/httpclient-4.3.3.jar lib/httpcore-4.3.2.jar lib/music-sdk-java.jar lib/protobuf-java-3.0.0-beta-4.jar写完后,要点一下回车,保证最后面还有一个空行,经过验证,如果不加空行,最后的Class-Path会被吞掉!

 给大家附一下我的MANIFEST.MF文件内容,格式直接粘贴应该就可以吧

Manifest-Version: 1.0
Main-Class: cma.music.demo.clib.StaElemSearchAPI.StaElemSearchAPI
 _CLIB_callAPI_to_serializedStr_JSON
Class-Path: lib/commons-codec-1.6.jar lib/commons-logging-1.1.3.jar lib/dom4j-2.0.0.jar lib/fastjson-1.2.56.jar lib/gson-2.8.0.jar lib/httpclient-4.3.3.jar lib/httpcore-4.3.2.jar lib/music-sdk-java.jar lib/protobuf-java-3.0.0-beta-4.jar

2.右键项目,选择Export导出-->选择Java-JAR file

3.左侧的项目选择这里和上面为引入jar包的区别就是:左侧的项目只选择src,其他的都不要选择,这里需要注意的就是如果引入了外部的jar包,后面单独要在打出的jar包的同级目录下创建一个lib目录,将项目中引用的外部的jar包复制进来

Select the export destination中选择的Jar file,一定要和MANIFEST.MF中的Main-Class中指向的主启动类一直,比如主启动类是cma.music.demo.clib.StaElemSearchAPI.StaElemSearchAPI,那么这个地方的命名就是cma.music.demo.clib.StaElemSearchAPI.StaElemSearchAPI.j

4.点击next,进入到JAR Packaging Options页面,什么也不要勾选,直接next

5.进入到JAR Manifest Specification页面,一定要勾选Use existing manifest from workspace,其中的Manifest file选择我们项目中手动创建的MANIFEST.MF路径

6.点击finish即可!

7.最后找到jar包保存的位置,将项目中引入的外部依赖或其他的文件,都放到jar包存放的同级目录下,比如我遇到的问题是打完jar包,运行jar包报找不到我的配置类,也就是一个client.config客户端配置,里面就是配置了一些连接客户端的信息,我把这个文件也放到同级目录下,就可以正常调用到了。

顺带说一下,打包过程中,肯定会有小伙伴会遇到下面的无主清单属性,这一步主要是在打jar包的第一步很关键!就是那个MANIFEST.MF文件,一定按照上面说的要求编写,不然一定会报这个问题奥

至此,分享结束!这个问题我希望我是最后一个遇到的,加油伙伴们!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Be explorer

若认可笔者文章,手头富裕望支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值