在应用程序而不是applet中使用jna库

时间:2017-01-06 12:39:45

标签: java eclipse dll processing jna

我正在尝试在我的项目中使用JNA库。

我的情况如下:

我有一个显示相机输入的小程序。

如果我使用命令运行applet 运行Applet,我会得到正确的结果:

  

显示相机输入的小程序

如果我从构建路径中删除jna.jar,则会出现预期错误。

如果我重命名本机插件的目录,则会出现预期错误。

如果我尝试运行整个应用程序,我会收到错误:

  

GStreamer-WARNING **:无法在30多个dll上加载插件C:/ Users / aaa / Desktop / bbb / ccc / video / library / \ windows64 \ plugins \ libgstwavparse.dll

路径C:/Users/aaa/Desktop/bbb/ccc/video/library/\windows64\plugins\是一个如果重命名使applet崩溃(所以正确的那个)和 jna.jar ,并且JNA使用的库被导入到每个涉及的项目中:启动应用程序的根项目和实例化显示applet的摄像机的视图项目。

如前所述,我尝试过

System.setProperty("jna.library.path","C:/Users/aaa/Desktop/bbb/ccc/video/library/windows64/plugins/" );

等...以所有可能的形式引用正确的目录,但无济于事。

该库是一个3 rd 派对库,实际上应该可以工作。

问题可能在于我完全缺乏对JNA和/或Gstreamer的了解,甚至还有一些基础知识。

有没有解决方法?为什么实例化applet的applet和应用程序在引用DLL ...或Gstreamer DLL ...或Processing 2.2.1包含Gstreamer DLL时会有不同的工作方式?

1 个答案:

答案 0 :(得分:0)

好吧我设法让它以这种方式工作:如果我直接在View项目中编写一个main并将applet添加到面板它现在可以工作......这样就解决了一些问题(applet甚至在面板之前无论如何)...如果在根项目下运行,同样精确的虚拟主要提供警告:唉:无法加载插件:"正确路径"

如前所述,我有一个根项目和一个视图项目(N Vproject是坦诚的)视频库包含在VProject中,而dll是项目资源。是否有可能从主项目运行应用程序(如不同的系统变量)最终导致问题? 只是不知道我先前添加和删除(和组合)所有可以添加到jna平台和jna-using-video lib两个项目的问题。

我确实非常关心在这种情况下解耦,因为我有点编写框架,这是一个主要的限制。有什么见解吗?