在Eclipse Jython插件中加载JDBC连接器

时间:2018-03-21 23:52:14

标签: eclipse jdbc eclipse-plugin jython

我正在使用基于Eclipse的工具,该工具提供了一个交互式Jython shell,用于针对内部数据模型进行脚本和数据分析。

我试图编写一个将结果导出到某种形式的数据库的脚本,所以我试图在Jython中使用内置的com.ziclix.python.sql包来提供接口和Xerial SQLite的JDBC连接器(https://github.com/xerial/sqlite-jdbc)提供后端。

使用标准命令行Jython解释器在第三方工具之外运行时,下面的脚本运行得很好,包括依赖于importJar() hack,这通常用于解决Jython并不总是使用用户{{ 1}}使用CLASSPATH运行时:

java -jar <blah>

...但是从Eclipse内部的插件运行时失败,其中from com.ziclix.python.sql import zxJDBC from java.net import URL, URLClassLoader from java.lang import ClassLoader from java.io import File JDBC_URL = "jdbc:sqlite:test.db" JDBC_DRIVER = "org.sqlite.JDBC" JDBC_JAR = "E:/sqlite-jdbc-3.21.0.jar" # Import Jar file into local class path def importJar(jarFile): m = URLClassLoader.getDeclaredMethod("addURL", [URL]) m.accessible = 1 m.invoke(ClassLoader.getSystemClassLoader(), [File(jarFile).toURL()]) def main(): try: importJar(JDBC_JAR) dbConn = zxJDBC.connect(JDBC_URL, None, None, JDBC_DRIVER) cursor = dbConn.cursor() # Do something useful cursor.close() dbConn.close() except zxJDBC.DatabaseError, msg: print msg if __name__ == '__main__': main() 调用错误:

zxJDBC.connect()

如果我将Jar文件添加到driver [org.sqlite.JDBC] not found 环境,我可以在Python脚本中成功JYTHONPATH,但是在JDBC驱动程序管理器的Java端,connect调用仍然失败。

为了完整起见,Jar文件的完整路径位于import org.sqlite.JDBCCLASSPATHPYTHONPATH环境变量...

有什么想法吗?

0 个答案:

没有答案