Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Intellij在类路径中找不到类_Java_Mysql_Tomcat_Intellij Idea_Classpath - Fatal编程技术网

Java Intellij在类路径中找不到类

Java Intellij在类路径中找不到类,java,mysql,tomcat,intellij-idea,classpath,Java,Mysql,Tomcat,Intellij Idea,Classpath,因此,我按照其他帖子中列出的所有步骤将mysql-connector-java-5.1.36-bin添加到intellij 12中的类路径中,当我编写代码时,intellij清楚地看到并允许我导入它,但当我在tomcat中运行应用程序时,我得到一个ClassNotFoundException 下面是我的设置和代码的屏幕截图 我知道在全局库中而不是在我的lib目录中这样做是不好的,因为我最初是在全局库中这样做的,并将其移动到全局库中,试图解决这个问题,但还没有将其移回。考虑到这似乎对其他所有人都

因此,我按照其他帖子中列出的所有步骤将mysql-connector-java-5.1.36-bin添加到intellij 12中的类路径中,当我编写代码时,intellij清楚地看到并允许我导入它,但当我在tomcat中运行应用程序时,我得到一个ClassNotFoundException

下面是我的设置和代码的屏幕截图


我知道在全局库中而不是在我的lib目录中这样做是不好的,因为我最初是在全局库中这样做的,并将其移动到全局库中,试图解决这个问题,但还没有将其移回。考虑到这似乎对其他所有人都有效,我假设这与我从intellij部署tomcat的方式有关,有什么想法吗?

这与intellij没有任何关系

您需要将JDBC驱动程序JAR放在Tomcat/lib文件夹中,而不是放在任何项目WEB-INF/lib中

您编写的代码仍远未达到最佳状态:

  • 硬编码的URL、驱动程序类和凭据使更改变得困难
  • 纯文本形式的用户名和密码
  • 没有JNDI查找
  • 没有连接池

  • 谢谢你批改了另一个问题。我把它作为其他推荐答案放在WEB-INF/lib中,现在它可以正常工作了。就代码而言,这只是示例代码,实际上我的数据库访问代码分散在几个文件中,因为它涉及属性文件、池和查询验证,因此,它不适合在堆栈溢出上发布,我个人认为,您应该始终发布最简单的代码来显示堆栈溢出上的问题,因为这将使它适用于大多数人。不,不要将它放在WEB-INF/lib中。这曾经是正确的答案,但对于Tomcat 7.x及更高版本来说已经不是了:
     public void runLookUp(String s){
        String url = "jdbc:mysql://localhost:3316/test";
        String username = "java";
        String password = "password";
        System.out.println("Connecting database...");
    
        System.out.println("Loading driver...");
    
        try {
            Class.forName("com.mysql.jdbc.Driver");
            System.out.println("Driver loaded!");
        } catch (ClassNotFoundException e) {
            throw new IllegalStateException("Cannot find the driver in the classpath!", e);
        }
        try  {
            Connection connection = (Connection) DriverManager.getConnection(url, username, password);
            System.out.println("Database connected!");
        } catch (SQLException e) {
            throw new IllegalStateException("Cannot connect the database!", e);
        }
    }