Java v4l2(摄像头驱动程序)无法使用Raspbery pi pi4j

Java v4l2(摄像头驱动程序)无法使用Raspbery pi pi4j,java,eclipse,camera,v4l2,Java,Eclipse,Camera,V4l2,在一个项目中,使用一个NOIR pi摄像头,并通过java和EclipseTrue进行操作。当相机开始预览时,需要打开IR-LED。因此,在新的类别中使用pi4j来打开和关闭LED。但当在相机面板的源代码中将其称为pi4j类时,相机未启动。有什么问题 pi4j等级: import com.pi4j.io.gpio.*; public class gpio_prg { private static GpioPinDigitalOutput pin; privat

在一个项目中,使用一个NOIR pi摄像头,并通过java和EclipseTrue进行操作。当相机开始预览时,需要打开IR-LED。因此,在新的类别中使用pi4j来打开和关闭LED。但当在相机面板的源代码中将其称为pi4j类时,相机未启动。有什么问题

pi4j等级:

import com.pi4j.io.gpio.*;

public class gpio_prg {

        private static GpioPinDigitalOutput pin;
        private GpioController gpio;

    public void out(int bcmn, boolean state){
        System.out.println("gpio controler");
                gpio = GpioFactory.getInstance();
        if(bcmn == 29){
                        if(state){
                            System.out.println("gpio pin");
                            pin = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_29, "MyLED", PinState.HIGH);
                                pin.setShutdownOptions(true, PinState.LOW);
                                System.out.println("--> GPIO NOIR LED state should be: ON");
                        }else{
                                pin.low();
                                System.out.println("--> GPIO NOIR LED state should be: OFF");
                        }
                }
        }
错误:

wiringPiSetup: Must be root. (Did you forget sudo?)

使用python源代码解决了此问题:

将java类更改为:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class gpio_prg {
    public void out() throws IOException, InterruptedException{
        String command = "python /home/pi/noirLedControl.py";
        Process proc = Runtime.getRuntime().exec(command);
        BufferedReader reader = new BufferedReader(new InputStreamReader(proc.getInputStream()));
        System.out.print("led status = ");
        System.out.println(reader.readLine());
        proc.waitFor();
        }
}
noirLedControl.py

import RPi.GPIO as GPIO

f = open('ledstatus', 'r')
s = 3
s = f.read()
f.close()
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(21, GPIO.OUT)
if(s == '0'):
    GPIO.output(21, GPIO.LOW)
    print "off"
    s = 1
else:
    GPIO.output(21, GPIO.HIGH)
    print "on"
    s = 0

f = open('ledstatus', 'w')
f.write(str(s))
f.close()
所以现在的问题是java类返回
reader.readline()
null。led电源开关不工作,但
python/home/pi/noirLedControl.py
当前在终端中运行。 我的java库版本是“1.8.0_122-ea”,所以我用两个JavaSE1.8和1.7运行我的项目,但问题没有解决。操作系统是Debian8 每个人都知道问题是什么