关于MyEclipse链接到MySql数据库后,打包成jar包并生成exe文件的探索历程

本人java新手一枚,初次发帖分享经验~

发现问题:

今天学习了如何使用MyElipse链接到Mysql数据库,并自己做了一个练习项目。当我把写好的项目从MyElipse导出为jar包后,发现运行jar包的时候链接不上数据库,如下:

关于MyEclipse链接到MySql数据库后,打包成jar包并生成exe文件的探索历程

其他部件正常,唯独数据库信息无法显示出来。

解决方案:

在网上搜寻了半天,发现原来是Mysql的JDBC的驱动包没有一起打包起来。

在MyEclipse里编程并运行的时候的确导入进来了,就像这样:
关于MyEclipse链接到MySql数据库后,打包成jar包并生成exe文件的探索历程

但是在导出为jar包的时候,这个并不能被一起导出去,这就导致jar包运行时出现这样的提示:

关于MyEclipse链接到MySql数据库后,打包成jar包并生成exe文件的探索历程

因此我们要在项目所在的目录里,新建一个lib文件夹,并把mysql-connector-java-8.0.19.jar复制粘贴到这个lib文件夹里:

关于MyEclipse链接到MySql数据库后,打包成jar包并生成exe文件的探索历程
关于MyEclipse链接到MySql数据库后,打包成jar包并生成exe文件的探索历程

这样在MyEclipse 里就会看到:

关于MyEclipse链接到MySql数据库后,打包成jar包并生成exe文件的探索历程

接着,如上图,在工程目录下新建了一个META-INF文件夹,里面新建一个manifest.mf文件,文件的内容:

关于MyEclipse链接到MySql数据库后,打包成jar包并生成exe文件的探索历程

第一行是版本,照着写就可以了,第二行是程序的入口,格式是 包名.类名。这个类是要有主函数的那个类。

我试了很久的是第三行,按照网上其他地方看到的格式写下来发现还是不行。

第三行就是驱动包的路径,这里我的格式是: 工程文件夹名/lib/包名,这样我的可以成功运行。

当然还有其他的一些格式要求,可以参考网上其他地方的,比如冒号后面一定要空格,每行末尾一定不能空格,最后一行末尾一定要敲个回车,所以我的光标最后是在第四行顶格。

写好了manifest文件,就可以打包了,要注意的是选择jar file格式输出,runnable的jar file我没试,大家也可以试试。然后一直next到最后一部,选择use existing manifest from workspace, 然后导入自己写的manifest.mf 文件:

关于MyEclipse链接到MySql数据库后,打包成jar包并生成exe文件的探索历程

打包成功,即可在cmd下运行

关于MyEclipse链接到MySql数据库后,打包成jar包并生成exe文件的探索历程
JSmooth 把jar包转成exe文件之后,发现exe文件打开时又不能链接到数据库了,纳闷了半天,发现其实很简单,只是要在转成exe文件的时候,在JSmooth里再次声明class-path:

关于MyEclipse链接到MySql数据库后,打包成jar包并生成exe文件的探索历程

导入我们之前添加到lib文件夹里的驱动包路径。

这样一来,生成的exe文件也成功链接数据库啦!
如果用exe4j也是一样的,要在转换的时候声明class-path