IntelliJ中的java.lang.ClassNotFoundException:com.mchange.v2.c3p0.ComboPooledDataSource,它在Eclipse中工作正常

时间:2016-06-26 08:28:34

标签: java-ee intellij-idea classnotfoundexception c3p0

我制作了一个简单的Java EE应用程序,我遇到了与数据库连接的问题。 在eclipse中一切正常,但是当我在Intellij中尝试相同时,会发生错误。

package db;

import com.mchange.v2.c3p0.ComboPooledDataSource;

import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.SQLException;

public class DbUtil {
private static DbUtil dbUtil;
private ComboPooledDataSource connectionPool;

private DbUtil() throws PropertyVetoException {
    connectionPool = new ComboPooledDataSource();
    connectionPool.setDriverClass("com.mysql.jdbc.Driver");
    connectionPool.setJdbcUrl("jdbc:mysql://localhost:3306/world");
    connectionPool.setUser("root");
    connectionPool.setPassword("root");

    connectionPool.setInitialPoolSize(5);
    connectionPool.setMinPoolSize(5);
    connectionPool.setMaxPoolSize(20);
    connectionPool.setAcquireIncrement(5);
    connectionPool.setMaxIdleTime(3600);
}

public Connection getConnection() throws SQLException {
    return connectionPool.getConnection();
}

public void close() {
    connectionPool.close();
}

public static DbUtil getInstance() {
    if (dbUtil == null) {
        try {
            dbUtil = new DbUtil();
        } catch (PropertyVetoException e) {
            e.printStackTrace();
        }
    }
    return dbUtil;
}
  }

在项目结构中 - >我有的图书馆: image

错误是:

java.lang.NoClassDefFoundError: com/mchange/v2/c3p0/ComboPooledDataSource
java.lang.ClassNotFoundException: com.mchange.v2.c3p0.ComboPooledDataSource

4 个答案:

答案 0 :(得分:2)

已经很长时间了,但是我遇到了同样的问题,这个解决方案也有效。

project_name/web/WEB-INF/ 创建名为lib的新文件夹,复制.jars c3p0-0.9.5.2, c3p0-oracle-thin-extras-0.9.5.2, mchange-commons-java-0.2.11然后在项目视图中选择lib文件夹,最后选择Add as liblary...

答案 1 :(得分:1)

这可能是由于servlet配置

bean id="myDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"

将休眠的c3p0 jar下载到lib并将其下载到jars

http://www.java2s.com/Code/Jar/c/Downloadc3p0090jar.htm

答案 2 :(得分:0)

只需将此依赖项添加到pom文件

即可
    <dependency>
        <groupId>com.google.code.maven-play-plugin.com.mchange</groupId>
        <artifactId>c3p0-oracle-thin-extras</artifactId>
        <version>0.9.5</version>
    </dependency>

    <dependency>
        <groupId>com.mchange</groupId>
        <artifactId>mchange-commons-java</artifactId>
        <version>0.2.11</version>
    </dependency>

    <dependency>
        <groupId>com.mchange</groupId>
        <artifactId>c3p0</artifactId>
        <version>0.9.5.2</version>
    </dependency>

答案 3 :(得分:0)

我遇到了这个问题,但我试过了,我的 hibernate jar 文件在不同的文件夹中。实际上,它们必须在 lib 文件夹中,但我创建了一个名为 hibernate 的新文件夹。这是错误的。你必须把你的jar文件放在lib文件夹中!