Java pi4j无法使用示例代码初始化
我直接使用示例代码,但仍然出现以下错误:Java pi4j无法使用示例代码初始化,java,exception,raspberry-pi,Java,Exception,Raspberry Pi,我直接使用示例代码,但仍然出现以下错误: Exception in thread "main" java.lang.ExceptionInInitializerError at com.pi4j.io.gpio.RaspiGpioProvider.<init>(RaspiGpioProvider.java:47) at com.pi4j.io.gpio.GpioFactory.getDefaultProvider(GpioFactory.java:102) a
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.pi4j.io.gpio.RaspiGpioProvider.<init>(RaspiGpioProvider.java:47)
at com.pi4j.io.gpio.GpioFactory.getDefaultProvider(GpioFactory.java:102)
at com.pi4j.io.gpio.impl.GpioControllerImpl.<init>(GpioControllerImpl.java:67)
at com.pi4j.io.gpio.GpioFactory.getInstance(GpioFactory.java:85)
at test.main(test.java:21)
Caused by: java.lang.NullPointerException
at com.pi4j.util.NativeLibraryLoader.load(NativeLibraryLoader.java:218)
at com.pi4j.wiringpi.Gpio.<clinit>(Gpio.java:138)
... 5 more
线程“main”java.lang.ExceptionInInitializeError中的异常
位于com.pi4j.io.gpio.raspioprovider(raspioprovider.java:47)
位于com.pi4j.io.gpio.GpioFactory.getDefaultProvider(GpioFactory.java:102)
位于com.pi4j.io.gpio.impl.GpioControllerImpl。(GpioControllerImpl.java:67)
位于com.pi4j.io.gpio.GpioFactory.getInstance(GpioFactory.java:85)
at test.main(test.java:21)
原因:java.lang.NullPointerException
位于com.pi4j.util.NativeLibraryLoader.load(NativeLibraryLoader.java:218)
在com.pi4j.wiringpi.Gpio上(Gpio.java:138)
... 还有5个
这是我使用的页面中的代码,我只更改了要测试的类名
import com.pi4j.io.gpio.GpioController;
import com.pi4j.io.gpio.GpioFactory;
import com.pi4j.io.gpio.GpioPinDigitalInput;
import com.pi4j.io.gpio.PinPullResistance;
import com.pi4j.io.gpio.RaspiPin;
import com.pi4j.io.gpio.event.GpioPinDigitalStateChangeEvent;
import com.pi4j.io.gpio.event.GpioPinListenerDigital;
/**
* This example code demonstrates how to setup a listener
* for GPIO pin state changes on the Raspberry Pi.
*
* @author Robert Savage
*/
public class test {
public static void main(String args[]) throws InterruptedException {
System.out.println("<--Pi4J--> GPIO Listen Example ... started.");
// create gpio controller
final GpioController gpio = GpioFactory.getInstance();
// provision gpio pin #02 as an input pin with its internal pull down resistor enabled
final GpioPinDigitalInput myButton = gpio.provisionDigitalInputPin(RaspiPin.GPIO_02, PinPullResistance.PULL_DOWN);
// create and register gpio pin listener
myButton.addListener(new GpioPinListenerDigital() {
@Override
public void handleGpioPinDigitalStateChangeEvent(GpioPinDigitalStateChangeEvent event) {
// display pin state on console
System.out.println(" --> GPIO PIN STATE CHANGE: " + event.getPin() + " = " + event.getState());
}
});
System.out.println(" ... complete the GPIO #02 circuit and see the listener feedback here in the console.");
// keep program running until user aborts (CTRL-C)
for (;;) {
Thread.sleep(500);
}
// stop all GPIO activity/threads by shutting down the GPIO controller
// (this method will forcefully shutdown all GPIO monitoring threads and scheduled tasks)
// gpio.shutdown(); <--- implement this method call if you wish to terminate the Pi4J GPIO controller
}
}
导入com.pi4j.io.gpio.GpioController;
导入com.pi4j.io.gpio.gpio工厂;
导入com.pi4j.io.gpio.gpiopinitalinput;
导入com.pi4j.io.gpio.PinPullResistance;
导入com.pi4j.io.gpio.RaspiPin;
导入com.pi4j.io.gpio.event.gpIOPiIndigitalStateChangeEvent;
导入com.pi4j.io.gpio.event.GpioPinListenerDigital;
/**
*此示例代码演示如何设置侦听器
*对于GPIO,Raspberry Pi上的引脚状态更改。
*
*@作者罗伯特·萨维奇
*/
公开课考试{
公共静态void main(字符串args[])引发InterruptedException{
System.out.println(“GPIO侦听示例…已启动”);
//创建gpio控制器
最终GpioController gpio=GpioFactory.getInstance();
//将gpio引脚#02作为输入引脚,并启用其内部下拉电阻器
最终GPIOPIIndigitalInput myButton=gpio.provisionDigitalInputPin(RaspiPin.gpio_02,PinPullResistance.PULL_DOWN);
//创建并注册gpio引脚侦听器
myButton.addListener(新的GpioPinListenerDigital(){
@凌驾
public void handlePiopIndicatalStateChangeEvent(GPIOPiIndigitalStateChangeEvent){
//在控制台上显示pin状态
System.out.println(“-->GPIO引脚状态更改:”+event.getPin()+“=”+event.getState());
}
});
System.out.println(“…完成GPIO#02电路,并在控制台中查看侦听器反馈。”);
//保持程序运行直到用户中止(CTRL-C)
对于(;;){
睡眠(500);
}
//通过关闭GPIO控制器停止所有GPIO活动/线程
//(此方法将强制关闭所有GPIO监视线程和计划任务)
//gpio.shutdown();看来您还没有安装本机库(WiringPi)。
可以肯定的是,您是否遵循了这里的所有内容:?安装wiringpi后,Java代码是否能像预期的那样工作?我正在尝试相同的示例(),我的问题是,只要打开联系人,就会一直收到低/高事件。