Java raspberry中jaydebeapi的问题类路径

Java raspberry中jaydebeapi的问题类路径,java,python,oracle,raspberry-pi,jaydebeapi,Java,Python,Oracle,Raspberry Pi,Jaydebeapi,我试图用python从Raspberry pi发出Oracle请求。问题是: “Oracle不支持Raspberry Pi使用的ARM CPU体系结构。您下载并解压缩了Oracle Instant Client,但它实际上无法运行。如果没有Oracle客户端库,cx_Oracle将无法工作,通用Python ODBC连接器也无法工作。” 信息: apachemaven 3.2.5 Maven主页:/opt/apache-Maven-3.2.5 Java版本:1.8.0_212,供应商:Raspb

我试图用python从Raspberry pi发出Oracle请求。问题是:

“Oracle不支持Raspberry Pi使用的ARM CPU体系结构。您下载并解压缩了Oracle Instant Client,但它实际上无法运行。如果没有Oracle客户端库,cx_Oracle将无法工作,通用Python ODBC连接器也无法工作。”

信息:

apachemaven 3.2.5 Maven主页:/opt/apache-Maven-3.2.5 Java版本:1.8.0_212,供应商:Raspbian Java主页:/usr/lib/jvm/Java-8-openjdk-armhf/jre 默认区域设置:fr\u fr,平台编码:UTF-8 操作系统名称:“linux”,版本:“4.19.42-v7+”,arch:“arm”,系列:“unix” ojdbc6.jar的位置是:

/home/pi/ojdbc6.jar
我需要python,所以安装了JPype和JayDeBeApi,我在jupyter notebopok上写了以下内容:

导入jaydebeapi
导入jpype
导入操作系统
conn=jaydebeapi.connect('oracle.jdbc.driver.OracleDriver', “[admin]/[root]@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=helloworld.com)(PORT=1521))(CONNECT_DATA=(SID=hello42))”, “/home/pi/ojdbc6.jar”) 但我有一个错误:

---------------------------------------------------------------------------
java.lang.RuntimeExceptionPyRaisable回溯(最后一次调用)
在里面
---->1 conn=jaydebeapi.connect('oracle.jdbc.driver.OracleDriver','[admin]/[root]@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=helloworld.com)(PORT=1521))(connect_DATA=(SID=hello42)),'/home/pi/ojdbc6.jar')
/connect中的usr/local/lib/python3.5/dist-packages/jaydebeapi/__-init__;.py(jclassname、url、驱动程序参数、jars、libs)
379其他:
380 libs=[]
-->381 jconn=\u jdbc\u connect(jclassname、url、驱动程序参数、jars、libs)
382回路连接(jconn,_转换器)
383
/usr/local/lib/python3.5/dist-packages/jaydebeapi/uuuu-init_uuuuu.py in_-jdbc\u-connect\u-jpype(jclassname、url、驱动程序参数、jars、libs)
188返回jpype.JArray(jpype.JByte,1)(数据)
189#为DriverManager注册驱动程序
-->190 jpype.JClass(jclassname)
191如果存在(驱动程序参数,dict):
192 Properties=jpype.java.util.Properties
/jclass中的usr/local/lib/python3.5/dist-packages/jpype//\u jclass.py(名称)
71 jc=_jpype.findClass(名称)
72如果jc为无:
--->73 raise\u RUNTIMEEXCEPTION.PYEXC(“未找到类%s”%name)
74
75返回(jc)
java.lang.RuntimeException Praisable:java.lang.RuntimeException:Class oracle.jdbc.driver.OracleDriver未找到
我认为问题在于类路径,但我还是个初学者。要配置此功能,需要键入哪些命令


提前谢谢你

我非常确定,'/home/pi/ojdbc6.jar'当前被视为驱动参数,而不是jars变量

正确的方法是:

conn=jaydebeapi.connect('oracle.jdbc.driver.OracleDriver',
'[admin]/[root]@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=helloworld.com)(PORT=1521))(CONNECT_DATA=(SID=hello42)))',
jars='/home/pi/ojdbc6.jar')

或者,您可以手动将Oracle light client jar添加到jpypeclasspath

jpype.startJVM(jpype.getDefaultJVMPath(), '-Djava.class.path=/home/pi/ojdbc6.jar'
conn=jaydebeapi.connect('oracle.jdbc.driver.OracleDriver',
'[admin]/[root]@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=helloworld.com)(PORT=1521))(CONNECT_DATA=(SID=hello42)))')

Oracle不支持Raspberry Pi使用的ARM-CPU架构(您在问题中包含的
)开头的初始消息来自哪里?这似乎意味着您无法从基于ARM CPU(如Raspberry Pi)的机器连接到Oracle数据库???在这篇帖子中::)我试过了,但我收到了这样一条消息:“oserrorjvm已经启动了”:o我明天会再试一次,谢谢你的帮助!知道了。事实上,如果JVM已经启动,则类不会加载到类路径。找到JVM的启动位置(它可以是对jpype的显式调用或其他东西,例如jaydebeapi.connect(..),并对类路径进行必要的修改。如果您准备好了,请查看源代码,其中实际解释了正在发生的一切。您的代码使用“正确的方式”告诉我:
python java.sql.SQLException pyraisable:java.sql.SQLException:找不到适合[admin]/[root]@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=helloworld.com)(PORT=1521))(CONNECT_DATA=(SID=hello42))
这是sql错误吗?访问数据库可能有问题。请确保正确指定了所有凭据(第二个connect(..)参数),并且数据库已启动并正在运行。