我是Ubuntu的新手并在网上搜索了两天,尝试了很多解决方案,但还没有任何运气。如果有人可以帮忙解决这个问题,我将不胜感激。
我在Windows上使用eclipse编写了一个Java程序。我的程序使用Java hidapi库,它是C版hidapi库(.dll)的Java包装器。在eclipse中,通过将Java hidapi添加到构建路径并将C hidapi设置为本机库,一切正常。
现在我想在Ubuntu上做同样的事情。使用相同的Java hidapi,现在将使用Linux的C版hidapi库(.so文件)。在为Linux制作C版hidapi库时,事实证明我需要另一个名为libusb-1.0的库(hidapi需要处理低级别的通信)。所以我安装了libusb-1.0(现在我在/ usr / lib / i386-linux-gnu下有一个libusb-1.0.so文件),为Linux制作C版hidapi库。我有一个小的C程序,我在bash下测试它,它的工作原理我相信,直到这一切,libsub-1.0.so和C版本hidapi库的Linux libhidapi-jni.so都正确安装/生成,并在运行时小C程序,系统能够找到共享的libusb-1.0.so库,而没有明确提到libsub-1.0的位置(这是有意义的,因为libusb-1.0安装在系统加载器将始终搜索的地方)。
所以我去了日食。我导入eclipse工作空间,将Java hidapi添加到构建路径(就像我在Windows中所做的那样),将Linux的C版hidapi库(.so文件)移动到名为'lib'的文件夹中(其中.dll版本)本地图书馆也驻留)。我通过“构建路径”将本机库设置为“lib” - > “配置构建路径” - > “libraries”标签 - > “本土图书馆位置”。所以到目前为止,两个本地库是:/ usr / lib / i386-linux-gnu下的libusb-1.0,以及'eclipse workspace is'/ lib下的hidapi.so。最后在源代码中我添加了两行:
的System.loadLibrary( “USB-1.0”); //拨打这一行A。
的System.loadLibrary( “hidapi-JNI”); //将此行称为B.
我将程序作为Java应用程序运行。它在A行报告“java.lang.UnsatisfiedLinkError:java.library.path中没有usb-1.0”。所以我猜Java运行时无法找到libsub-1.0的位置。
为了澄清,我已经做了以下试验,但没有一个有效。
任何人都可以帮助我吗?提前谢谢。