idea Java MySQL Class.forName("com.mysql.jdbc.Driver");报错java.lang.ClassNotFoundException: com.my...

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文件?

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容