Я пытаюсь использовать JPype для связи моего Python кода с Java классами. В моем классе Java я написал код для подключения к базе данных с использованием API JDB C.
Содержание метода Java, вызываемого из Python, несколько ниже:
Class.forName("oracle.jdbc.driver.OracleDriver");
//Reference to connection interface
con = DriverManager.getConnection(url,user,pass);
PreparedStatement stmt = con.prepareStatement(stringQuery);
stmt.setString(1, batchReferenceNo);
ResultSet rs = stmt.executeQuery();
//STEP 5: Extract data from result set
while(rs.next()){
bene_name = rs.getString(1);
}
con.close();
Но при выполнении моего Python кода я получаю ниже исключения в журналах:
'Поймано Java Исключение:', 'java .lang.ClassNotFoundException: oracle .jdb c .driver.OracleDriver ') java .lang.ClassNotFoundException: oracle .jdb c .driver.OracleDriver в java. net .URLClassLoader.findClass (URLClassLoader. java: 381) в java .lang.ClassLoader.loadClass (ClassLoader. java: 424) в sun.mis c .Launcher $ AppClassLoader.loadClass (Launcher. java: 331) в java .lang. ClassLoader.loadClass (ClassLoader. java: 357) в java .lang.Class.forName0 (собственный метод)
My Python Код:
def Validate_Payment_Instruction_JPype(self, batchRefNo):
cpath="-Djava.class.path=%s" % ("D:\workspace\AUTOMATION\AxiaLibrary\\")
startJVM(getDefaultJVMPath(), "-ea", cpath)
PaymentInstructionValidation = JClass('Payments.PaymentInstructionValidation')()
print(JObject(PaymentInstructionValidation.fetchPaymentInstruction(JString(batchRefNo))))
shutdownJVM()
Я попытался поместить ojdbc6.jar в мой путь к классу, т.е. "D: \ workspace \ AUTOMATION \ AxiaLibrary \". Но проблема все еще существует.
Пожалуйста, помогите, что нужно сделать, чтобы исправить это.