![](/img/trans.png)
[英]webcam problems with raspberry pi (java): ClassNotFoundException
[英]Run Bash from Java Program to Capture Webcam Image on Raspberry Pi
在我的Raspberry Pi上,我可以使用以下bash行从LXTerminal从Logitech Pro 9000 USB网络摄像头成功捕获并保存图像:
fswebcam -d /dev/video0 /home/pi/image.jpg
我想编写一个运行上述bash行的Java程序,因为它是捕获和保存图像的最简单方法。 到目前为止,我有:
import java.io.*;
public class GrabNSave {
public static void main(String[] args) throws IOException {
Runtime.getRuntime().exec("/bin/bash -c fswebcam -d /dev/video0 /home/pi/image.jpg");
}
}
没用 我没有收到任何错误消息。 请帮忙!
首先,您需要安装fswebcam ...。
sudo apt-get install fswebcam
然后,在Java程序中,您需要运行以下命令 :
Runtime.getRuntime().exec("fswebcam -d /dev/video0 /home/username/Desktop/test.jpg");
为我工作,希望对您有用! =)
首先,我也遇到了同样的问题.. =)
祝好运! /bin/bash -c fswebcam -d /dev/video0 /home/pi/image.jpg
也不能在bash中使用,您需要添加引号,以便bash将命令作为单个参数接收:
/bin/bash -c 'fswebcam -d /dev/video0 /home/pi/image.jpg'
但是我建议使用一个更简单的版本:
Runtime.getRuntime().exec("fswebcam -d /dev/video0 /home/pi/image.jpg")
或者,如果您需要更改以下行之间的参数:
String[] command = {"fswebcam", "-d", "/dev/video0", "/home/pi/image.jpg"}
Runtime.getRuntime().exec(command)
如果处理InputStream,则可以从Process中获取该信息:
Process process = Runtime.getRuntime().exec("sudo fswebcam -r 320x240 -d /dev/video0 /home/pi/apache-tomcat-7.0.37/webapps/co/cam1.jpg");
InputStream ips = process.getErrorStream();
int b = 0;
while ((b = ips.read()) > 0) {
// do something
}
`
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.