在多模块java项目中使用lib commons-dbcp2(BasicDataSource类)时出错
我想使用BasicDataSource进行数据库互连。在“经典”java项目(没有模块)中,一切都正常工作,但是当我创建多模块项目时,在编译时出现了一些错误在多模块java项目中使用lib commons-dbcp2(BasicDataSource类)时出错,java,database,java-module,Java,Database,Java Module,我想使用BasicDataSource进行数据库互连。在“经典”java项目(没有模块)中,一切都正常工作,但是当我创建多模块项目时,在编译时出现了一些错误 Error:(..) java: cannot access javax.management.MBeanRegistration 我以前从未遇到过这样的错误。有趣的是,当我试图调用BasicDataSource类的任何方法时,就会发生错误 Class.forName("com.mysql.cj.jdbc.Driver&
Error:(..) java: cannot access javax.management.MBeanRegistration
我以前从未遇到过这样的错误。有趣的是,当我试图调用BasicDataSource类的任何方法时,就会发生错误
Class.forName("com.mysql.cj.jdbc.Driver");
BasicDataSource basicDataSource = new BasicDataSource();
basicDataSource.setUsername("username"); //Error occurs here
lib的文件说:
DBCP 2.7.0仅在Java 8(JDBC 4.2)下编译和运行
但是:
在Java8及以上版本上运行的应用程序应使用DBCP2.7.0二进制文件
参考:
module-info.java:
module BusinessLogic {
requires mysql.connector.java;
requires java.sql;
requires com.fasterxml.jackson.databind;
requires commons.dbcp2;
requires commons.pool2;
requires commons.logging;
}
module DBModule{
requires mysql.connector.java;
requires java.sql;
requires commons.dbcp2;
requires java.management;
}
因此,我尝试使用二进制文件,但没有帮助,我如何才能避免这个问题?解决方案:有必要在模块信息中指定另一个依赖项:
需要java.management代码>
或删除模块信息
module-info.java:
module BusinessLogic {
requires mysql.connector.java;
requires java.sql;
requires com.fasterxml.jackson.databind;
requires commons.dbcp2;
requires commons.pool2;
requires commons.logging;
}
module DBModule{
requires mysql.connector.java;
requires java.sql;
requires commons.dbcp2;
requires java.management;
}
解决方案:需要在模块信息中再指定一个依赖项:
需要java.management代码>
或删除模块信息
module-info.java:
module BusinessLogic {
requires mysql.connector.java;
requires java.sql;
requires com.fasterxml.jackson.databind;
requires commons.dbcp2;
requires commons.pool2;
requires commons.logging;
}
module DBModule{
requires mysql.connector.java;
requires java.sql;
requires commons.dbcp2;
requires java.management;
}
BasicDataSource
在哪个库中?什么版本?您在新方式中使用的Java版本是什么?您可能应该使用“java模块”标记而不是“模块”。很抱歉,BasicDataSource不是lib,它是lib()中的一个类。Lib版本2.7.0。爪哇12。感谢您对“java模块”的评论。那么您正在使用?我正在尝试隔离我需要做的事情,这会造成相同的情况。是的,我正在使用itOh,我找到了解决方案,非常感谢!有必要在模块信息“requires java.management;”中再指定一个依赖项BasicDataSource
位于哪个库中?什么版本?您在新方式中使用的Java版本是什么?您可能应该使用“java模块”标记而不是“模块”。很抱歉,BasicDataSource不是lib,它是lib()中的一个类。Lib版本2.7.0。爪哇12。感谢您对“java模块”的评论。那么您正在使用?我正在尝试隔离我需要做的事情,这会造成相同的情况。是的,我正在使用itOh,我找到了解决方案,非常感谢!有必要在模块信息“requires java.management;”中再指定一个依赖项。