有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java错误:(32,13)错误:无法访问javax的可引用类文件。命名。找不到可引用的

我得到的错误上面和下面是我的代码我做错了什么? 对数据源的错误引用。 有什么问题

public class DBConnector {
private Connection dbConn = null;
private FileLogger fileLogger = new FileLogger("./logs/logfile.txt");
private ConfigurationReader conf = new ConfigurationReader("./config.sys");
private Logger logger = fileLogger.getLogger();

/**
 * Attempts to establish a connection with a test MySQL database.
 */
public DBConnector() {


    MysqlDataSource dataSource = new MysqlDataSource();
    dataSource.setUser(conf.getConfigString("username"));
    dataSource.setPassword(conf.getConfigString("password"));
    dataSource.setServerName(conf.getConfigString("dbhost"));
    dataSource.setDatabaseName(conf.getConfigString("dbname"));
    dataSource.setPort(conf.getConfigInt("dbport"));

    try {
        dbConn = dataSource.getConnection();

        logger.info("Succesful connection with database!");
    } catch (Exception ex) {
        logger.info("Error: DBConnector(): problem creating database connection");
    }
    logger.info("Database connection = " + dbConn);
}

共 (2) 个答案

  1. # 1 楼答案

    正如Sander Makhere所解释的,当您的代码依赖于没有模块描述符的东西,并且此依赖项的依赖项未解决时,通常会发生这种情况(例如,您使用的Hibernate没有模块描述符,但需要java.naming)

    在这种情况下,Sander建议使用

     add-modules java.naming
    

    这样,当将来Hibernate获得自己的模块描述符时,您只需删除上面的行,并且在模块信息中只有您的直接依赖项。爪哇

  2. # 2 楼答案

    我得到了相同的错误(在Java9或更高版本上)。对我来说,这个问题是由于我的模块(访问Referenceable的模块)的module-info.java中缺少requires java.naming;指令造成的。添加此指令修复了它:

    module MyModule {
       requires java.naming;
       ...
    }
    

    我希望这有帮助