从NetBeans启动ImageJ插件会引发JNI错误。仅从ImageJ启动它就可以正常工作

时间:2017-05-22 16:33:57

标签: java netbeans java-native-interface imagej

我有一个ImageJ插件及其源,需要一个.dll库才能运行。当我把它放到ImageJ插件文件​​夹中时插件工作得很好,没问题。

但是我必须修改源代码以添加新功能,所以我在NetBeans中打开了项目(它已经是一个NetBean项目),并尝试从IDE启动它,启动ImageJ的简单测试类并设置插件目录到项目目的地。这适用于我所有的其他插件,但在这里我得到一个UnsatisfiedLinkError。

经过对Dependency Walker的一些研究和使用后,我发现我错过了项目路径中的一些.dll。现在我将它们全部放在正确的位置,使用-Djava.library.path =“paths_to_all_my_libs”执行,我仍然收到错误,找不到特定程序。

这真的让我感到困扰,因为我必须将.jar中的.jar复制到我的ImageJ的安装中,冒着搞砸的风险,我无法使用控制台输出调试内容。另外,我不明白为什么我不能让它在NetBeans中工作,只需单独使用ImageJ就可以了。

非常欢迎任何想法!

1 个答案:

答案 0 :(得分:0)

您可以在这里采用两种方法:

  1. 确保将您的dll位置添加到PATH
  2. 如果您不关心位置(例如,您正在为自己开发一些东西),请使用System.load使用dll的确切位置 - 它将库的显式位置作为参数