JAVA错误:包com.sun.rowset不可见:com.sun.rowset在模块java.sql.rowset中声明,它不会导出它

use*_*142 6 java compiler-errors java-9 java-module

我只是尝试运行此代码:

import com.sun.rowset.CachedRowSetImpl;

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

当我运行它时,我得到:

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

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

And*_*niy 9

随着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();
    }
}
Run Code Online (Sandbox Code Playgroud)

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

exports javax.sql.rowset;
exports javax.sql.rowset.serial;
exports javax.sql.rowset.spi;
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你!我刚学会了Java 9中模块的用途;)) (2认同)