首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在命令行调用的Jython脚本中使用UCanAccess

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

Stack Overflow用户
提问于 2015-10-30 14:29:27
回答 1查看 452关注 0票数 1

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

尝试在Jython:Manipulating an Access database from Java without ODBC中使用Gord的解决方案

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

代码语言:javascript
运行
复制
# -*- 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运行它时,它会打印出"#似乎已经导入了.“但随后抛出了一个错误:

(注意,这个输出是复制的到:它确实是一个CLI运行)

有人知道我为什么会得到“没有合适的司机.”?我尝试了各种排列与反斜杠,而不是在getConnection中的正向排列。都没有用。

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

代码语言:javascript
运行
复制
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 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-30 22:16:31

看来,sys.pathPATH环境变量的关系更大,而与CLASSPATH环境变量关系更大。已经测试了以下两种方法,并使用Jython2.7.0从Windows命令行运行了一个名为"jyTest.py“的脚本

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

代码语言:javascript
运行
复制
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方法2:在调用jythonJythonJython时使用来设置CLASSPATH

代码语言:javascript
运行
复制
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条目。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33438374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档