在从命令行调用的 Jython 脚本中使用 UCanAccess

2023-12-09

操作系统:Windows7、Jython2.7.0FR(“最终版本”)

尝试将 Gord Thompson 的解决方案与 Jython 结合使用:在没有 ODBC 的情况下从 Java 操作 Access 数据库

我可以让 Ucanaccess 模块在 Eclipse 中工作,但当我尝试从 CLI 运行时则不行。

# -*- coding: utf-8 -*-
import java, sys
jars_dir = 'D:\\sysadmin\\Resources\\Java jar files\\'
sys.path.append( jars_dir + 'commons-lang-2.6.jar' )
sys.path.append( jars_dir + 'commons-logging-1.2.jar' )
sys.path.append( jars_dir + 'hsqldb.jar' )
sys.path.append( jars_dir + 'jackcess-2.1.2.jar' )
sys.path.append( jars_dir + 'ucanaccess-3.0.2.jar' )
import net.ucanaccess.jdbc.UcanaccessDriver
import net.ucanaccess
print( '# appear to have imported UcanaccessDriver' )
conn = java.sql.DriverManager.getConnection( 'jdbc:ucanaccess://D:/TESTING.mdb' )
print( '# conn OK...') 

当我在 Eclipse 中运行它时,会打印出“# conn OK”。 当我从 CLI 运行它时,它会打印出“# 似乎已导入...”,但随后会抛出错误:

enter image description here

(注意这个输出是copied到 Eclipse:它确实是 CLI 运行)

有人知道为什么我可能会收到“没有合适的驱动程序......”吗?注意,我在 getConnection 中尝试了使用反斜杠而不是正斜杠的各种排列...但无济于事。

顺便说一句,如果这是相关的,这是我用来运行该东西的 .bat 文件的摘录:

cd "%SOFTWARE_PROJECTS%\workspace\Jython scratchpad\src\jython_scratchpad_root"

REM this is probably irrelevant and doesn't seem to work with Jython2.7.0FR.  The jars are being loaded by sys.path.append, obviously
set CLASSPATH=.;"%SYSADMIN%\resources\java jar files/*"

D:\apps\jython2.7.0\bin\jython loading_test.py 

看起来sys.path有更多的关系PATH环境变量比CLASSPATH环境变量。以下两种方法已经过测试,并且可以与 Jython 2.7.0 一起使用,从 Windows 命令行运行名为“jyTest.py”的脚本

方法 1:在启动 Jython 之前从批处理文件(或 shell 脚本)设置 CLASSPATH

SET CLASSPATH=C:/Users/Public/Downloads/UCanAccess/ucanaccess-3.0.2.jar;C:/Users/Public/Downloads/UCanAccess/lib/commons-lang-2.6.jar;C:/Users/Public/Downloads/UCanAccess/lib/commons-logging-1.1.1.jar;C:/Users/Public/Downloads/UCanAccess/lib/hsqldb.jar;C:/Users/Public/Downloads/UCanAccess/lib/jackcess-2.1.2.jar;.  
c:\jython2.7.0\bin\jython jyTest.py

(对于 Linux 等,这将是export CLASSPATH ...和冒号分隔符而不是分号。)

方法二:使用-J-cp调用 Jython 时设置 CLASSPATH

c:\jython2.7.0\bin\jython -J-cp C:/Users/Public/Downloads/UCanAccess/ucanaccess-3.0.2.jar;C:/Users/Public/Downloads/UCanAccess/lib/commons-lang-2.6.jar;C:/Users/Public/Downloads/UCanAccess/lib/commons-logging-1.1.1.jar;C:/Users/Public/Downloads/UCanAccess/lib/hsqldb.jar;C:/Users/Public/Downloads/UCanAccess/lib/jackcess-2.1.2.jar;. jyTest.py

(再次强调,Linux 和朋友们需要-cp条目之间用冒号而不是分号分隔。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在从命令行调用的 Jython 脚本中使用 UCanAccess 的相关文章

随机推荐