【发布时间】:2015-10-30 14:29:27
【问题描述】:
操作系统:Windows7、Jython2.7.0FR(“最终版本”)
尝试将 Gord Thompson 的解决方案与 Jython 一起使用:Manipulating an Access database from Java without ODBC
我可以让 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 运行它时,它会打印出“# 似乎已导入...”,但随后会引发错误:
(注意这个输出复制到 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
【问题讨论】:
-
jdbc url 是正确的,后面的java 版本是什么?
-
谢谢。如果我不完全清楚如何回答您的问题,请原谅我:OS JAVA_HOME Env Var 指向 jdk1.7.0_79。 Windows PATH Env Var 包括 jdk1.7.0_79\jre\bin,至于 Eclipse,我有点难过它在运行 Jython 项目时如何寻找它的 JRE,但是在 Preferences --> Java --> Installed 下JREs,它再次指向 jdk1.7.0_79。你是在暗示我实际上有义务迁移到 Java 8???
-
在您的批处理文件中,尝试设置 CLASSPATH 以包含各个 JAR 文件。我刚试过this,它对我有用。
-
@GordThompson 谢谢。我已经尝试过这个和许多其他排列,但实际上我今天发布了另一个关于在 Jython 2.7.0FR(“最终版本”)中加载 jar 的问题:stackoverflow.com/questions/33434083/…。我注意到在您的 sn-p 中您使用的是 Jython 2.5.3。您是否尝试过将 Ucanaccess 与 2.7.0FR 一起使用? PS 在使用“动态加载”(sys.path.append...) 后我得到“#似乎已导入...”这一事实似乎表明我已经加载了这些 jars。
-
不,我只是想知道是不是java6。但事实并非如此。
标签: eclipse command-line jython ucanaccess