Java Intellij在类路径中找不到类
因此,我按照其他帖子中列出的所有步骤将mysql-connector-java-5.1.36-bin添加到intellij 12中的类路径中,当我编写代码时,intellij清楚地看到并允许我导入它,但当我在tomcat中运行应用程序时,我得到一个ClassNotFoundException 下面是我的设置和代码的屏幕截图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目录中这样做是不好的,因为我最初是在全局库中这样做的,并将其移动到全局库中,试图解决这个问题,但还没有将其移回。考虑到这似乎对其他所有人都
我知道在全局库中而不是在我的lib目录中这样做是不好的,因为我最初是在全局库中这样做的,并将其移动到全局库中,试图解决这个问题,但还没有将其移回。考虑到这似乎对其他所有人都有效,我假设这与我从intellij部署tomcat的方式有关,有什么想法吗?这与intellij没有任何关系 您需要将JDBC驱动程序JAR放在Tomcat/lib文件夹中,而不是放在任何项目WEB-INF/lib中 您编写的代码仍远未达到最佳状态:
谢谢你批改了另一个问题。我把它作为其他推荐答案放在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);
}
}