美文网首页
idea Java MySQL Class.forName("c

idea Java MySQL Class.forName("c

作者: 封_绝 | 来源:发表于2019-03-07 23:23 被阅读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文件?

    相关文章

      网友评论

          本文标题:idea Java MySQL Class.forName("c

          本文链接:https://www.haomeiwen.com/subject/wuskpqtx.html