MyEclipse将Java项目打成jar文件

       最近需要用代码调用数据库中的数据,本地测试通过了,但是在打成jar包提交到Linux的过程中总是报错,错误如下:

[root@master01 ~]# java -jar yhzc/test.jar 
java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:264)
	at com.xzw.test.Test.main(Test.java:15)

      一开始以为是Oracle数据库驱动的问题,但是找了相关的驱动,并且尝试放到了各种位置,依然还是这个错误。无耐,只好把代码改成了连接MySQL数据库,但是依然报类似的错误:

[root@master01 ~]# java -jar yhzc/test.jar 
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:264)
	at com.xzw.test.Test.main(Test.java:15)

       检查了jdk、数据库驱动等皆没有问题,最后小编的目光转到了打包的过程中,最后发现果然是这一环节出了问题,现在将MyEclipse将Java项目打成jar文件总结整理如下,以供需要者参考:


一、手动创建配置文件


注:因为引入了第三方jar包,所以需要手动创建该配置文件


MANIFEST.MF文件的内容如下:

Manifest-Version: 1.0
Class-Path: jars/ojdbc14-10.2.0.2.0.jar
Main-Class: com.xzw.oracle.Test

第一行是MANIFEST的版本,第二行Class-Path指定第三方jar包的位置,如果有多个jar包,每个jar包之间需要用空格隔开。

注意事项:

1、Class-Path: 和Main-Class: 后边都有一个空格,必须加上,否则会打包失败,错误提示为:Invalid header field;
2、假设我们的项目打包后为test.jar,那么按照上面的定义,应该在 test.jar的同层目录下建立一个jars文件夹(即jars文件夹和打包的jar文件在同一个目录下),并将相关的jar包放在里面。否则将会出现“Exception in thread "main" java.lang.NoClassDefFoundError”的错误;
3、Main-Class后面是类的全地址,比如你的主文件是Test.java,文件里打包为package com.xzw.oracle。那么这里就写com.xzw.oracle.Test,不要加.java后缀,主文件地址写错将会出现“找不到或无法加载主类”的错误;
4、写完Main-Class后一定要回车(即最后一行是空白行),让光标到下一行,这样你生成的jar包才能找到你的主class去运行,否则将会出现“jar中没有主清单属性”的错误。



二、选中项目,右键-->Export



三、Java-->JAR file-->Next



四、按照下图操作后,点击两次Next



五、选择步骤一创建好的配置文件



六、如下图,选中


点击Finish之后有时会出现警告文件,点击OK就行,可忽略。


七、找到jar文件所在目录,用压缩软件打开.jar文件,打开META_INF文件夹,用手动创建的MANIFEST.MF文件替换META_INF文件夹里的MANIFEST.MF(注:因为生产的META_INF文件夹下的MANIFEST.MF是空的,不替换的话,则程序启动会报错)。



八、将jar包上传到Linux上,并在与jar文件同目录下创建文件夹jars


将用到的第三方jar包上传到jars文件夹下



九、运行jar包,成功!



至此,MyEclipse将Java项目打成jar文件就讲解完了。


你们在此过程中还遇到了什么问题,欢迎留言,让我看看你们都遇到了哪些问题。

猜你喜欢

转载自blog.csdn.net/gdkyxy2013/article/details/80164829