在运行时替换导入类

问题描述 投票:0回答:1

我正在将数据库从11G迁移到12C。应用程序当前正在java5上运行,并使用ojdbc14.jar当我移到ojdbc6.jar时,我得到

java.lang.IllegalAccessError: tried to access class oracle.jdbc.driver.OracleResultSet

打开两个jar文件并进行比较后,我发现ojdbc6.jar中不再提供OracleResultSet上的访问修饰符

问题:是否有一种方法可以在运行时通过java参数覆盖类中的导入,而不是更改类并重新编译代码。问题是,我不再有源代码,因此正在寻找一种方法来覆盖特定类中的导入。

我了解导致错误的原因或原因,需要知道是否有办法在运行时覆盖导入。


import oracle.jdbc.driver.OracleResultSet;
import java.sql.ResultSet;
import java.sql.Clob;
import java.sql.PreparedStatement;
.
.other imports

我可以将导入更改为oracle.jdbc.OracleResultSet,它将起作用。但是由于源代码不再可用,我将不得不在.class文件中进行直接更改。

java jdbc ojdbc
1个回答
0
投票
目前,反编译可能有效,但是也许应该用新的实现代替此代码。将来应用更改/错误修正可能会更容易
© www.soinside.com 2019 - 2024. All rights reserved.