在java.library中没有dhtreader.Path

 2023-01-19    323  

问题描述

我尝试让这个Maven projekt 在Raspberry Pi 3上运行,但是DHT11传感器给出了DHT11传感器我以下错误:

sudo java -classpath '.:classes:*:classes:/opt/pi4j/lib/*' com.epam.llpd.greenhouse.web.ServerStarter

java.lang.UnsatisfiedLinkError: no dhtreader in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)
    at java.lang.Runtime.loadLibrary0(Runtime.java:870)
    at java.lang.System.loadLibrary(System.java:1122)
    at com.epam.llpd.greenhouse.sensor.Sensor.<clinit>(Sensor.java:16)
    at com.epam.llpd.greenhouse.PiHardwareController$1.run(PiHardwareController.java:132)

在文件夹中\src\main\java\com\epam\llpd\greenhouse\sensor有dhtreader.c文件.

在java.library中没有dhtreader.Path

我确实使用以下命令编译了二进制objekt:

gcc -o dhtreader.so -lc -shared -I/usr/lib/jvm/jdk-7-oracle-arm-vfp-hflt/include -I/usr/lib/jvm/jdk-7-oracle-arm-vfp-hflt/include/linux dhtreader.c -l bcm2835

dhtreader.so放置在与.jar的同一文件夹中.

dhtreader.c文件是针对Raspberry Pi使用DHT11和DHT22传感器的常见C类,它用于许多Raspberry Pi Projects,并且具有很多源,例如

使用此C类(DHTREADER.C). jni/c,但由于上述错误而无法工作.

我已经尝试在Java Main中使用以下方法设置java.library.path:

System.setProperty(" java.library.path",="" "./");="">

无济于事.相反,我将-Djava.library.path=./添加到Java命令:

sudo java -classpath '.:classes:*:classes:/opt/pi4j/lib/*' com.epam.llpd.greenhouse.web.ServerStarter -Djava.library.path=./

但这也没有帮助.

现在我卡住了,不知道如何将dhtreader.so添加到java.library.path.

如何将dhtreader.so添加到java.library.path?

我在 raspberry pi stackexchange 首次,但他们首先想到它是主题的.

推荐答案

尝试简单地将dhtreader.so重命名为libdhtreader.so.

的确,当我们在java中调用System.loadLibrary("foo")库的预期名称是:

  • Windows: foo.dll
  • unix/linux: libfoo.so
  • Mac: libfoo.jnilib

尝试将其启动为下一步:

sudo java -Djava.library.path=./lib -classpath '.:classes:*:classes:/opt/pi4j/lib/*' com.epam.llpd.greenhouse.web.ServerStarter

nb:上面的命令假设您的LIB位于LIB目录中,该目录本身位于命令已启动的目录中.

以上所述是小编给大家介绍的在java.library中没有dhtreader.Path,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/25874.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。