首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将.dll添加到Eclipse/PyDev Jython项目中的java.library.path

将.dll添加到Eclipse/PyDev Jython项目中的java.library.path
EN

Stack Overflow用户
提问于 2012-06-20 23:47:58
回答 3查看 70.2K关注 0票数 22

我正尝试在我的PyDev Jython项目中使用一个编译的Jython库。

我成功地将.jar添加到PYTHONPATH中,并且能够开始自动完成工作的编码。

该库还需要一个.dll扩展javaHeclib.dll,因此我将其添加到项目的External Libs部分。

我可以很好地导入库,但是当我试图访问它的任何函数时,我得到了一个错误:

代码语言:javascript
复制
java.lang.UnsatisfiedLinkError: java.lang.UnsatisfiedLinkError: no javaHeclib in java.library.path

我在我的运行配置中添加了一个VM参数,但没有成功:

代码语言:javascript
复制
-Djava.library.path="Y:/path/to/javaHeclib.dll;${env_var:PATH}"

使用上面的java.library.path,我可以从命令行很好地运行库。

在PyDev控制台中进行实验时,我注意到我可以使用绝对路径加载.dll扩展,但不能使用相对路径:

代码语言:javascript
复制
>>> 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调用,我无法访问它的源代码。

为什么我的java.library.path中没有javaHeclib.dll

编辑

java.library.path设置为包含dll的目录不允许我使用System.loadLibrary加载它。

代码语言:javascript
复制
-Djava.library.path="Y:/path/to/dll/;${env_var:PATH}"

(使用正斜杠没有什么不同。)我还尝试在eclipse.ini中更改默认的VM参数,但没有成功:

代码语言:javascript
复制
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx384m
-Djava.library.path="Y:\path\to\dll\;${env_var:PATH}"
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-21 06:13:11

我把它弄好了。

供将来参考:

假设您需要的dll在Y:\path\to\dlls\lib\中。然后将运行配置的工作目录设置为Y:\path\to\dlls\,并将VM参数设置为包含-Djava.library.path=lib

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

也许这是我正在使用的特定库所特有的东西(或者Eclipse是从不同的驱动器上运行的,而不是从该库上运行的)……

票数 11
EN

Stack Overflow用户

发布于 2013-02-02 02:35:28

我认为更好的方法是:

  1. 在项目下创建一个文件夹,例如将所有dll文件放入此文件夹。
  2. 在项目->属性-> Java Build Path -> Source中,单击并展开源代码详细信息。
  3. 您将看到本地库位置,单击/突出显示它。
  4. ,然后单击右侧的编辑,再次单击工作区。您可以在项目下看到dll文件夹。
  5. 选择它,然后单击确定,确定。您将看到dll已添加到本地库位置。

就这样。您不需要手动更改配置中的任何内容。

票数 51
EN

Stack Overflow用户

发布于 2017-06-13 03:10:54

我也有类似的问题,但是Ghost Script dll。即使遵循将文件放入工作目录并遵循说明,它对我也不起作用,请参考标签Ghost4J. java.lang.UnsatisfiedLinkError: Unable to load library 'gsdll64'并使用-Djna.library.path来使其工作。

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

https://stackoverflow.com/questions/11123274

复制
相关文章

相似问题

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