java项目打成jar包时引用了第三方jar ---linux 运行

摘要:
当Java项目打包为jar包时,将引用第三方jar。您需要将Java项目放在Linux系统上运行。我们知道,在IDE中编写JavaSE项目后,右键单击主方法--->另一种也是在服务器上放置Java项目的常用方法。今天我想谈谈在操作方法1时应该注意什么。只需在myeclipse或eclipse中直接导出jar包。指定导出jar包的具体存储位置,即jar包名称:选择要执行的主方法;

java项目打成jar包时引用了第三方jar,此时我们该如何解决呢

Web项目做多了,反而对单纯的java项目陌生了,今天我们在开发项目的过程中,碰到一个这样的需求:需要将java项目放到linux系统上跑起来,当然这个javaSE项目是带main方法的。我们知道在IDE里写完JavaSE项目后,运行非常简单,只要本地java环境装好了,右击main方法---->run as-->java application就行,那么放到linux上呢?目前我们想到的有两种方法:一种是打成jar包放到服务器上,用命令java -jar ****.jar执行jar包即可。另外一种也是挺常见的将java项目放到服务器上,然后写一个shell脚本执行。关于方法二,还正在尝试之中。今天我要说的是方法一操作时需要注意的。

打jar包很简单,直接在myeclipse或者eclipse里导出jar包就行。具体做法是:

右击项目------->export---->选择JAR file:

java项目打成jar包时引用了第三方jar ---linux 运行第1张

------>next----->:指定导出的jar包具体存放位置即jar包名称:

java项目打成jar包时引用了第三方jar ---linux 运行第2张

------>next--->默认:

java项目打成jar包时引用了第三方jar ---linux 运行第3张

------>选择要执行的main方法:

java项目打成jar包时引用了第三方jar ---linux 运行第4张

----->finesh,这样将JavaSE项目打成jar包就完成了,到此就可以放到服务器上执行java -jar test.jar,就执行指定的main方法了。

至此,如果你写的java项目没有引入第三方的jar包,一点问题都没有,但是一旦你引入了框架呀或者自己公司写的jar包时,问题就悄悄来了,待你执行时就会发现抛出了NoClassDeFined诸如此类的问题,也就是找不到这个类,这时候你也许会奇怪,为啥呀,明明有这个类啊,那是你的错觉,你在IDE里导入了需要的jar包,当然会有了,但问题时你现在执行的这个jar文件放到了服务器上,它里面是否包含了这个jar呢,原来我以为打成jar包时就把引入的jar包一并再次打包,现在想想应该不会吧。呵呵,具体我还没怎么去深究,今天咱们先把这个解决方法说了。

步骤一:在你服务器存放jar包的同级目录下创建一个lib目录,并且将所有需要导入的第三方jar包全放进去,一个也不要剩:

java项目打成jar包时引用了第三方jar ---linux 运行第5张

步骤二:在IDE里准备清单文件:MANIFEST.MF,即在项目的目录下,新建一个MANIFEST.MF文件,先不要问为什么,相信我,咱们先解决掉咱们问题后再说:

java项目打成jar包时引用了第三方jar ---linux 运行第6张

关于清单文件里的内容:

java项目打成jar包时引用了第三方jar ---linux 运行第7张

ManifestMain-Version:版本,1.0

Class-Path:将第三方的jar名都放进去,注意:后面要留一个空格

Main-Class:jar包要执行的main方法,记得写类的全路径,同事:后面要留一个空格。

OK了,清单文件准备完成了,继续下一步操作。

步骤三:重新打jar包,步骤和原来的一样,export---next---...但是有一点区别的是,如下需要使用自己写好的清单文件:

java项目打成jar包时引用了第三方jar ---linux 运行第8张

免责声明:文章转载自《java项目打成jar包时引用了第三方jar ---linux 运行》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Devexpress之LayoutControl的使用及其控件布局设计thymeleaf 日期时间格式处理下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

quartz定时任务_job实现类中获取传参02

1.main方法: public static void main(String[] args) throws SchedulerException { // TODO Auto-generated method stub // 创建一个JobDetail实例 将HelloJob类添加到JobDetail中 JobDetail jobDetail = J...

自己动手写中文分词解析器完整教程,并对出现的问题进行探讨和解决(附完整c#代码和相关dll文件、txt文件下载)

中文分词插件很多,当然都有各自的优缺点,近日刚接触自然语言处理这方面的,初步体验中文分词。 首先感谢harry.guo楼主提供的学习资源,博文链接http://www.cnblogs.com/harryguo/archive/2007/09/26/906965.html,在此基础上进行深入学习和探讨。 接下来进入正文。。。大牛路过别喷,菜鸟有空练练手~~完...

文件加锁(基于FileChannel)

      JDK1.4引入了文件加锁机制。它允许我们同步访问某个作为共享资源的文件。不过,竞争同一文件的两个线程可能在不同的Java虚拟机上,或者一个是Java线程,另一个是操作系统中的其他的某个本地线程。文件加锁对其他的操作系统进程是可见的,因为Java的文件加锁直接映射到了本地操作系统的枷锁工具。       通过对FileChannel调用tryL...

内存映射mmap

Table of Contents 1. 什么是mmap 2. 使用方法 2.1. mmap构造器的格式 2.2. 例子1 2.3. 例子2 3. 其它 4. 参考资料 什么是mmap通常在Unix系统里有两种操作的数据类型:内存地址和流文件(stream)。通过操作内存地址的方法涉及的操作有:pointers, malloc/free之类,...

css hover伪类选择器与JQuery hover()方法

css hover伪类选择器 它属于anchor伪类 在支持 CSS 的浏览器中,<a>标签链接的不同状态都可以以不同的方式显示,常常用来改链接的颜色效果 实例 a:link{color:#FF0000;}/* 未访问的链接 */ a:visited{color:#00FF00;}/* 已访问的链接 */ a:hover{color:#FF...

我的第一个油猴脚本--微博超话自动签到

简介 用户脚本是一段代码,它们能够优化您的网页浏览体验。安装之后,有些脚本能为网站添加新的功能,有些能使网站的界面更加易用,有些则能隐藏网站上烦人的部分内容。其中常见的有 油猴插件、ChromeExtentions 由于油猴脚本只用一个JS文档,因而相对于ChromeExtentions比较简单。因此便从油猴脚本开始,首先基本的文件架构是: // ==Us...