.dll文件添加到在Eclipse / PyDev的Jython的项目的java.library.p

2019-07-30 00:59发布

我想在我的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}"

Answer 1:

我认为,更好的方法是:

  1. 在该项目下创建一个文件夹,例如DLL。
  2. 复制/所有dll文件粘贴到该文件夹​​。
  3. 在项目 - >属性 - > Java构建路径 - >源,单击并展开源的详细信息。
  4. 你会看到本机库的位置,点击/高亮显示。
  5. 然后点击右侧的修改,再次单击工作区。 你可以看到该项目下的dll文件夹中。
  6. 选择它,然后单击OK,OK。 你会看到DLL在本机库位置添加。

而已。 你不需要在配置手动改变任何东西。



Answer 2:

我得到这个工作。

备查:

说你需要的DLL是Y:\path\to\dlls\lib\ 。 然后设置你的运行配置的工作目录Y:\path\to\dlls\并设置VM参数包括-Djava.library.path=lib

这就是它,它现在应该工作。 我不知道为什么在指定一个绝对路径java.library.path以前也没工作,但设置工作目录似乎已经做到了。

也许它的东西特有我使用(或Eclipse是从不同的驱动器运行速度比库上)的特定库...



Answer 3:

我有类似的问题,但用Ghost脚本DLL。 随后将文件放入在工作目录和遵循的指示情况下,也没有工作对我来说,是指标签Ghost4J。 java.lang.UnsatisfiedLinkError中:无法加载库“gsdll64”和所使用的-Djna.library.path得到它的工作。



文章来源: Add .dll to java.library.path in Eclipse/PyDev Jython project