本人java新手一枚,初次发帖分享经验~
发现问题:
今天学习了如何使用MyElipse链接到Mysql数据库,并自己做了一个练习项目。当我把写好的项目从MyElipse导出为jar包后,发现运行jar包的时候链接不上数据库,如下:
其他部件正常,唯独数据库信息无法显示出来。
解决方案:
在网上搜寻了半天,发现原来是Mysql的JDBC的驱动包没有一起打包起来。
在MyEclipse里编程并运行的时候的确导入进来了,就像这样:
,
但是在导出为jar包的时候,这个并不能被一起导出去,这就导致jar包运行时出现这样的提示:
因此我们要在项目所在的目录里,新建一个lib文件夹,并把mysql-connector-java-8.0.19.jar复制粘贴到这个lib文件夹里:
这样在MyEclipse 里就会看到:
接着,如上图,在工程目录下新建了一个META-INF文件夹,里面新建一个manifest.mf文件,文件的内容:
第一行是版本,照着写就可以了,第二行是程序的入口,格式是 包名.类名。这个类是要有主函数的那个类。
我试了很久的是第三行,按照网上其他地方看到的格式写下来发现还是不行。
第三行就是驱动包的路径,这里我的格式是: 工程文件夹名/lib/包名,这样我的可以成功运行。
当然还有其他的一些格式要求,可以参考网上其他地方的,比如冒号后面一定要空格,每行末尾一定不能空格,最后一行末尾一定要敲个回车,所以我的光标最后是在第四行顶格。
写好了manifest文件,就可以打包了,要注意的是选择jar file格式输出,runnable的jar file我没试,大家也可以试试。然后一直next到最后一部,选择use existing manifest from workspace, 然后导入自己写的manifest.mf 文件:
打包成功,即可在cmd下运行
JSmooth 把jar包转成exe文件之后,发现exe文件打开时又不能链接到数据库了,纳闷了半天,发现其实很简单,只是要在转成exe文件的时候,在JSmooth里再次声明class-path:
导入我们之前添加到lib文件夹里的驱动包路径。
这样一来,生成的exe文件也成功链接数据库啦!
如果用exe4j也是一样的,要在转换的时候声明class-path