gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 02:02:12 24 4
gpt4 key购买 nike

我正在尝试在我的 PyDev Jython 项目中使用已编译的 .jar Java 库。

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

该库还需要 .dll 扩展名 javaHeclib.dll,因此我将其添加到项目的“外部库”部分。

我可以很好地导入该库,但是当我尝试访问它的任何函数时出现错误:

java.lang.UnsatisfiedLinkError: java.lang.UnsatisfiedLinkError: no javaHeclib in java.library.path

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

-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}"

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

-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx384m
-Djava.library.path="Y:\path\to\dll\;${env_var:PATH}"

最佳答案

我认为更好的方法是:

  1. 在项目下创建一个文件夹,例如dll。
  2. 将所有 dll 文件复制/粘贴到此文件夹中。
  3. 在项目 -> 属性 -> Java 构建路径 -> 源中,单击并展开源详细信息。
  4. 您将看到 native 库位置,单击/突出显示它。
  5. 然后点击右侧的编辑,再次点击工作区。可以看到项目下有dll文件夹。
  6. 选择它并单击“确定”、“确定”。您将看到 dll 已添加到 native 库位置。

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

Java Build Path configuration

关于eclipse - 将 .dll 添加到 Eclipse/PyDev Jython 项目中的 java.library.path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11123274/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com