idea Java MySQL Class.forName("c

2019-03-07  本文已影响0人  封_绝

JavaEE 学习登陆功能连接数据库时(使用idea,非eclipse),
Class.forName("com.mysql.jdbc.Driver");
报错java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

包已导入,试了一下网上说的修改tomcat里面的service.xml文件等,没有任何效果
参考该博客,无效尝试,但是还是有点东西的,可以看看

刚刚成功了,然后把tomcat,bin目录下的mysql-connector-java-5.1.6.jar删掉了(之前有人说要放进去),也是可以运行的,说明并不需要把jar包放到tomcat目录下中去。

版本:jdk1.8,mySql?不祥?jar包5.16,Java EE3.1与2.5都试过ok(成功时候的配置)

主要问题在于Artifacts


正确配置

错误配置时,mysql的jar包是在Available Elements框框下面的,说明没有被引入成功。
导致out中的jar没有放到lib目录下,所以tomcat不能识别。


正确的out文件目录

根据web目录(下图)生成的一个字节码文件和jar包的文件目录


生成依据

但是有时候却改了lib文件名之后out文件还是会生成lib为文件名的目录,真是奇怪。

另外测试过将lib文件夹重命名为libs,删除out文件夹,重启tomcat,如果out中自动生成的文件夹名为libs,tomcat(或者jvm)则无法识别,依旧报出ClassNotFoundException错误。我们猜测,tomcat(或者jvm)是根据文件夹的名称来区别的,lib下面的就是jar,classes下的就是字节码文件。如果文件名不同,则无法识别。

Question:Artifacts是什么?
output directory与modules中的output path有关系?
什么情况会根据自己的web自动生成out文件?

上一篇下一篇

猜你喜欢

热点阅读