错误提示:
‘oracle.jdbc.driver.OracleTypes’ is not public in ‘oracle.jdbc.driver’. Cannot be accessed from outside package
原因: 这是因为项目用到的oracle jdbc的jar包太老了,在ojdbc14.jar中,OracleTypes类是public的,而到了oracle 11g的驱动中,比如ojdbc5.jar ,ojdbc6.jar中,这个类源码如下:
class OracleTypes extends oracle.jdbc.internal.OracleTypes {
    private static final String _Copyright_2007_Oracle_All_Rights_Reserved_ = null;
    public static final String BUILD_DATE = "Fri_Aug_26_08:19:15_PDT_2011";
    public static final boolean TRACE = false;
    OracleTypes() {
    }
}

 

可以看到类的修饰符是default,default的表示只有同一个package下的类才能访问,所以报错。
解决办法:
第一种: 维护老项目,不能乱改,只能下载ojdbc14.jar版本的驱动。
第二种:替换为新版本的oracle 11g的驱动 ,将oracle.jdbc.OracleTypes 类替换 oracle.jdbc.driver.OracleTypes。

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.