我想在我的PyDev Jython的项目中使用编译的.jar Java库。
我成功添加的.jar到PYTHONPATH,并能够开始与自动完成的工作编码。
该库需要.dll扩展名也, javaHeclib.dll
,所以我补充说,我的项目的外部利布斯部分。
我可以导入库很好,但是当我试图访问它的功能我得到一个错误:
java.lang.UnsatisfiedLinkError: java.lang.UnsatisfiedLinkError: no javaHeclib in java.library.path
我添加了一个VM参数,以我的运行配置,没有运气:
-Djava.library.path="Y:/path/to/javaHeclib.dll;${env_var:PATH}"
我可以就好使用运行在命令行库java.library.path
以上。
在控制台的PyDev试验,我发现我可以用绝对路径加载.dll扩展名,而不是相对:
>>> import java.lang
>>> java.lang.System.load('Y:/path/to/javaHeclib.dll')
>>> java.lang.System.loadLibrary('javaHeclib')
Traceback (most recent call last):
File "<console>", line 1, in ?
java.lang.UnsatisfiedLinkError: java.lang.UnsatisfiedLinkError: no javaHeclib in java.library.path
不幸的是,库使用的System.loadLibrary
调用上面,我没有访问它的源。
为什么javaHeclib.dll
不在我java.library.path
?
编辑
设置java.library.path
到包含DLL的目录并没有让我使用加载它System.loadLibrary
。
-Djava.library.path="Y:/path/to/dll/;${env_var:PATH}"
(使用正斜杠没有有所作为。)我也试过改变默认的VM ARGS eclipse.ini
,没有运气:
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx384m
-Djava.library.path="Y:\path\to\dll\;${env_var:PATH}"