问题描述
试图使组合 jython-zxJDBC-ucanaccess 在我的Windows机器上运行;一整天都在让我发疯
zxJDBC.DatabaseError(未找到驱动程序[net.ucanaccess.jdbc.ucanaccessDriver]),以及 zxJDBC.DatabaseError(未找到驱动程序[ucanaccess])
我一直在使用Gord Thompson中的示例代码来提供我的详细信息-尝试执行时,始终会因未发现驱动程序错误而失败:
from com.ziclix.python.sql import zxJDBC
#Or also import ucanaccess
jdbc_url = "jdbc:ucanaccess://Z:/Companies.accdb"
username = ""
password = ""
driver_class = "net.ucanaccess.jdbc.ucanaccessDriver"
#Or driver_class = "net.ucanaccess.jdbc.UcanloadDriver"
cnxn = zxJDBC.connect(jdbc_url,username,password,driver_class)
crsr = cnxn.cursor()
crsr.execute("SELECT * FROM tblSICs")
for row in crsr.fetchall():
print row[0]
crsr.close()
cnxn.close()
- 单独使用Jython效果很好,我将其与SikuliX IDE一起使用
- “从...导入zxJDBC”顺利通过
- ucanaccess在我的MS上从命令行(console.bat)运行正常 访问数据库;所有5个JAR都位于CLAsspATH变量中,并且与之相同
我不明白什么是“ driver_class”?我以为,通过CLAsspATH中的Jython / SikuliX可以找到特定于数据库的驱动程序,在其中可以看到“ ... / ucanaccess-5.0.0.jar”。
这是CLAsspATH:
"c:\Users\User\AppData\Roaming\ucanaccess\lib\hsqldb-2.5.0.jar;c:\Users\User\AppData\Roaming\ucanaccess\lib\jackcess-3.0.1.jar;c:\Users\User\AppData\Roaming\ucanaccess\lib\commons-lang3-3.8.1.jar;c:\Users\User\AppData\Roaming\ucanaccess\lib\commons-logging
-1.2.jar;c:\Users\User\AppData\Roaming\ucanaccess\ucanaccess-5.0.0.jar"
这是SikuliX IDE查找资源的地方:
D:\ Drawer 3 \ Sikuli \ Training \ ucanaccess.sikuli Z:\ test.sikuli C:\ Users \ User \ AppData \ Roaming \ Sikulix \ Lib \ site-packages C:\ Users \ User \ AppData \ Roaming \ Sikulix \ Lib C:\ Users \ User \ AppData \ Roaming \ Sikulix \ Extensions \ Lib C:\ Users \ User \ AppData \ Roaming \ Sikulix \ Extensions \ jython-standalone-2.7.2.jar \ Lib classpath pyclasspath /
有人发现问题了吗?
解决方法
发现该问题是SikuliX 2.0.4的一种特殊形式,无法评估CLASSPATH变量。这里是变通方法/ SiluliX了解JAR位置的方法:
两种解决方案:
解决方案A
SikuliX IDE进入文件夹
;所有五个相关 JAR文件需要放置在该文件夹中(不存在“ lib”子文件夹 部署包):
ucanaccess-5.0.0.jar
commons-lang3-3.8.1.jar
commons-logging-1.2.jar
hsqldb-2.5.0.jar
jackcess-3.0.1.jar
通过查看发现的扩展JAR SikuliX->工具->扩展...
解决方案B
将所需的JAR保留在其原始部署文件夹中,然后添加 他们到“特殊文件”的路径 'C:\ Users \ User \ AppData \ Roaming \ Sikulix \ Extensions \ extensions.txt'为:
ucanaccess = C:/用户/用户/ AppData /漫游/UCanAccess/ucanaccess-5.0.0.jar
C:/Users/User/AppData/Roaming/UCanAccess/lib/commons-lang3-3.8.1.jar
C:/Users/User/AppData/Roaming/UCanAccess/lib/commons-logging-1.2.jar
C:/用户/用户/ AppData /漫游/UCanAccess/lib/hsqldb-2.5.0.jar
C:/Users/User/AppData/Roaming/UCanAccess/lib/jackcess-3.0.1.jar
这将作为替代方法进行评估,而不是CLASSPATH 变量
感谢您的帮助!