Java错误:包com.sun.rowset不可见:com.sun.rowset是在模块java.sql.rowset中声明的,该模块不会将其导出

2022-02-22 00:00:00 compiler-errors java java-module java-9

我只是尝试运行此代码:

import com.sun.rowset.CachedRowSetImpl;

public class Test {
    public static void main(String[] args) throws Exception{
        CachedRowSetImpl crs = new CachedRowSetImpl();
    }
}

当我运行它时,我得到:

错误:(1,15)java:包com.sun.rowset不可见(包 com.sun.rowset在模块java.sql.rowset中声明,该模块不 导出)

我正在使用IntelliJ,并且尝试导入rs2xml.jar,但仍然没有帮助。


解决方案

使用Java 9您不能再访问此类。在理想的情况下,你不应该这样做。这是因为javax.sql.rowset模块中没有导出该类的包。在Java-9中执行此操作的正确方式为:

import javax.sql.rowset.*; 

public class Test {
    public static void main(String[] args) throws Exception {

        CachedRowSet crs = RowSetProvider.newFactory().createCachedRowSet();
    }
}

要了解我们可以转到模块描述(module-info.java)并找到导出的包列表:

exports javax.sql.rowset;
exports javax.sql.rowset.serial;
exports javax.sql.rowset.spi;

相关文章