Web项目作多了,反而对单纯的java项目陌生了,今天咱们在开发项目的过程当中,碰到一个这样的需求:须要将java项目放到linux系统上跑起来,固然这个javaSE项目是带main方法的。咱们知道在IDE里写完JavaSE项目后,运行很是简单,只要本地java环境装好了,右击main方法---->run as-->java application就行,那么放到linux上呢?目前咱们想到的有两种方法:一种是打成jar包放到服务器上,用命令java -jar ****.jar执行jar包便可。另一种也是挺常见的将java项目放到服务器上,而后写一个shell脚本执行。关于方法二,还正在尝试之中。今天我要说的是方法一操做时须要注意的。java
打jar包很简单,直接在myeclipse或者eclipse里导出jar包就行。具体作法是:linux
右击项目------->export---->选择JAR file:shell
------>next----->:指定导出的jar包具体存放位置即jar包名称:服务器
------>next--->默认:app
------>选择要执行的main方法:框架
----->finesh,这样将JavaSE项目打成jar包就完成了,到此就能够放到服务器上执行java -jar test.jar,就执行指定的main方法了。eclipse
至此,若是你写的java项目没有引入第三方的jar包,一点问题都没有,可是一旦你引入了框架呀或者本身公司写的jar包时,问题就悄悄来了,待你执行时就会发现抛出了NoClassDeFined诸如此类的问题,也就是找不到这个类,这时候你也许会奇怪,为啥呀,明明有这个类啊,那是你的错觉,你在IDE里导入了须要的jar包,固然会有了,但问题时你如今执行的这个jar文件放到了服务器上,它里面是否包含了这个jar呢,原来我觉得打成jar包时就把引入的jar包一并再次打包,如今想一想应该不会吧。呵呵,具体我还没怎么去深究,今天我们先把这个解决方法说了。3d
步骤一:在你服务器存放jar包的同级目录下建立一个lib目录,而且将全部须要导入的第三方jar包全放进去,一个也不要剩:blog
步骤二:在IDE里准备清单文件:MANIFEST.MF,即在项目的目录下,新建一个MANIFEST.MF文件,先不要问为何,相信我,我们先解决掉我们问题后再说:ip
关于清单文件里的内容:
ManifestMain-Version:版本,1.0
Class-Path:将第三方的jar名都放进去,注意:后面要留一个空格
Main-Class:jar包要执行的main方法,记得写类的全路径,同事:后面要留一个空格。
OK了,清单文件准备完成了,继续下一步操做。
步骤三:从新打jar包,步骤和原来的同样,export---next---...可是有一点区别的是,以下须要使用本身写好的清单文件: