首页 > 解决方案 > 当我更改 JAVA_HOME 时,通过 Python 的 JDBC 无法与 jpype 和 jaydebeapi 一起使用

问题描述

有人可以帮助我吗?

JHOME = jpype.getDefaultJVMPath()
if not jpype.isJVMStarted():
    jpype.startJVM(JHOME, '-Djava.class.path=ojdbc8.jar')


con = jaydebeapi.connect('oracle.jdbc.driver.OracleDriver','jdbc:oracle:thin:XXXXXXX/XXXXXXXX@//99.99.99.99:1521/XXX')
cur = con.cursor()

cur.execute("SELECT NAME FROM M_ITEM WHERE ITEMID='" + t.get() + "'")

row = cur.fetchone()  
messagebox.showinfo("Result", row[0])
cur.close()
con.close()

此代码用于连接到 Oracle 数据库服务器。当我将 JAVA_HOME 环境变量设置为“C:\Program Files\Java\jdk-13.0.1”时,该程序运行正常,没有任何错误。

但是我更改了 JAVA_HOME 环境变量设置后,出现了以下错误。

“jpype._jvmfinder.JVMNotFoundException:找不到 JVM 共享库文件 (jvm.dll)。尝试正确设置 JAVA_HOME 环境变量”

我已经为 JAVA_HOME 环境变量尝试了这些,但下面的所有内容似乎都不正确。

JAVA_HOME=C:\Program Files (x86)\Java\jdk1.7.0_75

JAVA_HOME=C:\Program Files (x86)\Java\jre1.8.0_221

JAVA_HOME=C:\Program 文件 (x86)\Java\jre7

怎么了?当我为 JAVA_HOME 选择 jre1.8.0_221 时,我想应该没问题。这个问题发生在我可以连接的同一台计算机上。我计划将此应用程序分发到另一台计算机,因此我正在使用 JAVA 的另一个设置进行测试。虽然我的 Jpype 版本与网页上的这个不同,但最新版本在 JAVA_HOME 和 Python3.6 上使用我的 JAVA8 应该看起来不错。我的 Jpype 是 0.6.3。有谁知道我的 Jpype 版本是否支持 JAVA8 和 Python3.6?

或者我应该怀疑另一个问题?

标签: javapythonoracle

解决方案


推荐阅读