有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java PI4J无法使用path加载[libpi4j.so]

我正在MacOS上使用NetBeans开发一个使用PI4J的应用程序。看起来一切正常,但我得到下面的错误,说PI4J无法加载。有人知道如何解决这个问题吗

abr 18, 2015 3:02:30 PM com.pi4j.util.NativeLibraryLoader load
SEVERE: Unable to load [libpi4j.so] using path: [/lib/libpi4j.so]
java.lang.UnsatisfiedLinkError: /private/var/folders/0x/6rph2scs0f544b7xwkfhzkcw0000gn/T/libpi4j3968879292977354112.so: dlopen(/private/var/folders/0x/6rph2scs0f544b7xwkfhzkcw0000gn/T/libpi4j3968879292977354112.so, 1): no suitable image found.  Did find:
    /private/var/folders/0x/6rph2scs0f544b7xwkfhzkcw0000gn/T/libpi4j3968879292977354112.so: unknown file type, first eight bytes: 0x7F 0x45 0x4C 0x46 0x01 0x01 0x01 0x00
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1937)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1822)
    at java.lang.Runtime.load0(Runtime.java:809)
    at java.lang.System.load(System.java:1086)
    at com.pi4j.util.NativeLibraryLoader.loadLibraryFromClasspath(NativeLibraryLoader.java:143)
    at com.pi4j.util.NativeLibraryLoader.load(NativeLibraryLoader.java:92)
    at com.pi4j.wiringpi.Gpio.<clinit>(Gpio.java:174)
    at com.pi4j.io.gpio.RaspiGpioProvider.<init>(RaspiGpioProvider.java:51)
    at com.pi4j.io.gpio.GpioFactory.getDefaultProvider(GpioFactory.java:106)
    at com.pi4j.io.gpio.impl.GpioControllerImpl.<init>(GpioControllerImpl.java:54)
    at com.pi4j.io.gpio.GpioFactory.getInstance(GpioFactory.java:89)
    at hellorasp.HelloRasp.main(HelloRasp.java:31)

Exception in thread "main" java.lang.UnsatisfiedLinkError: com.pi4j.wiringpi.Gpio.wiringPiSetup()I
    at com.pi4j.wiringpi.Gpio.wiringPiSetup(Native Method)
    at com.pi4j.io.gpio.RaspiGpioProvider.<init>(RaspiGpioProvider.java:51)
    at com.pi4j.io.gpio.GpioFactory.getDefaultProvider(GpioFactory.java:106)
    at com.pi4j.io.gpio.impl.GpioControllerImpl.<init>(GpioControllerImpl.java:54)
    at com.pi4j.io.gpio.GpioFactory.getInstance(GpioFactory.java:89)
    at hellorasp.HelloRasp.main(HelloRasp.java:31)

共 (4) 个答案

  1. # 1 楼答案

    sudo apt-get remove wiringpi -y
    sudo apt-get --yes install git-core gcc make
    cd ~
    git clone https://github.com/WiringPi/WiringPi --branch master --single-branch wiringpi
    cd ~/wiringpi
    sudo ./build
    

    这是从pi4j拍摄的 我面临这个问题,当我在终端执行这些命令时。。。一切都很顺利

  2. # 2 楼答案

    假设OP在raspberry pi上运行他的代码,我也在一个pi运行代码上得到了这个错误,该代码控制伺服系统,从2018年2月开始工作,但在2018年7月产生了这个错误。我在pi4j 1.2发行版中发现了一个变化,需要您手动安装wiringpi库

    因此,我得到了准确的错误,按照这些指示,我的伺服系统再次移动:

    http://wiringpi.com/download-and-install/

  3. # 3 楼答案

    复制libpi4j。因此,请转到RPI上的项目库文件夹

  4. # 4 楼答案

    /lib/libpi4j。所以这个文件不会工作,因为它只是为Raspberry Pi定制的,而不是任何其他硬件