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

技术标签: myeclipse  java  开发软件配置和常见解决问题  jar  ide  

近况(问题描述)

最近我负责某项目,需要完成一项任务是打出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文件,一定按照上面说的要求编写,不然一定会报这个问题奥

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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/CNpeaceful/article/details/137102589

智能推荐

docker获取不到镜像,pod容器(dop-registry)起不来_docker容器regpositories网址出不来-程序员宅基地

文章浏览阅读916次,点赞18次,收藏13次。是 Docker 官方维护的一个服务,用于存储和分发 Docker 官方镜像,包括一些常见的操作系统、编程语言运行时环境等。通过使用 Docker 官方镜像注册表,用户可以方便地访问和获取到官方维护的镜像,用于构建、运行和部署他们的容器化应用程序。kube-flannel是一个在Kubernetes集群中用于网络通信的网络解决方案。kube-flannel使用了一个虚拟的overlay网络,它允许Kubernetes节点之间的容器在不同的主机上进行通信,同时保持网络的简单性和性能。_docker容器regpositories网址出不来

Reduction to two dimensions and Phase plane analysis_phase plane analysis matlab-程序员宅基地

文章浏览阅读805次。Two dimensional neuron modelsReduction to two dimensionsGeneral approach_phase plane analysis matlab

Android动画---如何正确使用平移动画(关于fillBefore和fillAfter的一点说明)(转载)...-程序员宅基地

文章浏览阅读85次。转载地址:http://blog.csdn.net/fengkuanghun/article/details/7878862如何实现将View向上平移自身高度一半的距离?TranslateAnimation translate = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0, ...

Unity Hub for Mac 安装-程序员宅基地

文章浏览阅读9.6k次,点赞3次,收藏9次。Unity Hub for Mac 安装_unity hub for mac

毕业设计项目 STM32的智能饮水机控制系统(源码+硬件+论文)-程序员宅基地

文章浏览阅读938次,点赞13次,收藏11次。这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是毕业设计 STM32的智能饮水机控制系统(源码+硬件+论文)学长这里给一个题目综合评分(每项满分5分)难度系数:3分工作量:3分创新点:4分项目分享:见文末!项目分享:见文末!**项目分享: **

10个程序员可以接私活的平台和一些建议_软件工程师哪里好找活-程序员宅基地

文章浏览阅读1.3w次,点赞5次,收藏50次。今天为大家分享一些可以接私单的平台,相信大家学习编程未来是希望成为一个软件工程师或者码农,找到好的工作,有好的发展。但是在还没有找工作之前,大家可以通过一些平台接一些兼职,一来能够赚钱,在主页保持稳定的情况下能够发展自己的副业。二来通过接项目,大量的实践,你说接触的类型会更丰富,可以为你积累实战经验,面试时也会比他人更有优势。下面就跟我一起来看看有哪些兼职平台吧~国内远程工作平台,接单平台1、CODING 码市著名的Coding旗下的互联网软件外包服务平台,平台以外包为主。._软件工程师哪里好找活

随便推点

H5流媒体播放器EasyPlayer视频播放暂停时,画面仍显示码率的问题优化_easyplayer有声音无画面-程序员宅基地

文章浏览阅读561次。EasyPlayer性能稳定、播放流畅,可支持的视频流格式有RTSP、RTMP、HLS、FLV、WebRTC等,具备较高的可用性。_easyplayer有声音无画面

CentOS7 MySQL 增量备份与恢复-程序员宅基地

文章浏览阅读900次,点赞17次,收藏14次。针对以上面试题,小编已经把面试题+答案整理好了。

zabbix汉化-程序员宅基地

文章浏览阅读1.3k次,点赞4次,收藏8次。虽然Zabbix Server管理页面提供了中文模式,但是在具体的模板监控项和触发器警告等等还是全部英文,所以这里说下这些汉化方法。Zabbix Server服务端默认使用的是Mariadb数据库,采用API修改监控项触发器的方法。如有翻译错误欢迎评论指正。_zabbix汉化

Pentaho BIServer Community Edtion 6.1 社区版本 (1)_pentaho community edition-程序员宅基地

文章浏览阅读544次。一、Pentaho CDE的安装1、首先登录 Pentaho User Console2、打开MarketPlace 在这里可以看到所有可用的插件在这里你可以点击安装 Community Dashboard Editor注:这里为了方便连接数据库我安装了CDA 即Community Data Access 安装方法同上 (Pentao 5.0.1每安装一个插件后就要重启一次如果直接安装..._pentaho community edition

【Android项目实战 | 从零开始写app(十)】Okhttp+glide+json+ListView实现新闻模块数据解析并显示_android listview和http实现获取新闻列表-程序员宅基地

文章浏览阅读3.4k次,点赞13次,收藏20次。在上一篇: Android项目实战 | 从零开始写app(九)】Tablayout+ViewPager实现页面分类顶部标题页面联动切换 的基础上实现数据的填充展示由于首页会展示到推荐新闻列表,所以今天先把新闻模块的数据先请求下来,就跳着更吧,后面再继续完善首页~~这篇早早就写好了,奈何发布了几次老是说审核不通过,说内容违规???? 无可奈何~菜鸡一枚,写得不好,有问题的请指教~~文章导航一、【Android项目实战 | 从零开始写app(一)】 创建项目二、【Android项目实战 | 从零开_android listview和http实现获取新闻列表

ASP.NET MVC 5 一 入门-程序员宅基地

文章浏览阅读119次。ASP.NET MVC 5 一 入门 本系类教程将要构建ASP.NET MVC 5 Web 应用程序,使用的工具是VS2013 。现在有预览版可以下载了,点击下载VS2013 FOR WEB ISO文件。VS2012 还没用几天呢,2013就要出来,据说数据库..._.net mvc5的body属性

推荐文章

热门文章

相关标签