![](/img/trans.png)
[英]Booting Java Application On Startup - Raspberry Pi - Raspbian - Shell Script
[英]Gphoto2 fails to save image when captured via Java .jar (Raspberry Pi - Raspbian)
我正在编写一个GUI应用程序,该应用程序使用Raspbian中的gphoto2包从相机获取图像。 当我在终端中手动输入命令gphoto2 --capture-image-and-download
,相机会拍摄一张图像并将其保存到当前文件夹中。 但是,当我通过Java代码中的按钮执行相同的命令时,相机会拍摄图像,但不会保存图像。 从bash重定向的输出表示图像已保存到相机(我可以应付),但是图像既没有保存到相机也没有保存到当前目录,实际上,它似乎根本没有保存。
这是按钮代码:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
Runtime com = getRuntime();
try {
//Reset USB Device to prevent warnings
Process mand = com.exec("../../../usbreset /dev/bus/usb/001/005");
//Capture image
Process get = com.exec("gphoto2 --capture-image-and-download");
Send Bash output(s) to text area
BufferedReader in1 = new BufferedReader(new InputStreamReader(mand.getInputStream()));
BufferedReader in2 = new BufferedReader(new InputStreamReader(get.getInputStream()));
String inputLine1;
while ((inputLine1 = in1.readLine()) != null) {
msgArea.append(inputLine1 + "\n");
}
in1.close();
String inputLine2;
while ((inputLine2 = in2.readLine()) != null) {
msgArea.append(inputLine2 + "\n");
}
in2.close();
} catch (IOException ex) {
Logger.getLogger(Home.class.getName()).log(Level.SEVERE, null, ex);
}
}
如果问题出在我的bash命令或Java代码中,我无法解决。 我尝试过相机中是否有存储卡,也尝试过使用图像的指定文件名,但无济于事。 我不确定它是否重要,但是Pi是通过PuTTY ssh通过Debian笔记本电脑上的X11转发进行控制的。 Java是用Netbeans 8编写的。GPhoto2是2.4.14版,相机是Canon EOS 1100D,尽管我怀疑这最后一个事实对要求来说是多余的。
如果有人能帮助我,我将不胜感激-这是我在大学的最后一年项目的重要组成部分,因此我必须能够尽快将其整理好!
提前致谢,
家伙
好的,我已经回答了我自己的问题。
bash的输出仅被发送直到拍摄照片为止。 在那之后,终端输出没有被发送,所以我错过了一个错误,一个权限被拒绝的工作。 因此解决方案是在gphoto2
命令之前添加一个sudo
。 最终简单的解决方案却令人沮丧!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.