我试着在Linux中用CutyCapt从Java中截图。但是由于某些原因,当我从Java运行命令时,它不会等待CutyCapt完成截图,而是立即返回,没有截图。
此命令从命令行起作用,但从Java运行时不起作用。
xvfb-run --server-args="-screen 0, 1024x768x24" /usr/bin/cutycapt --url=http://www.google.com/ --out=/home/screenshots/screenshot1.png 下面是运行该命令的Java代码:
Process child = Runtime.getRuntime().exec(command);
child.waitFor();编辑:
我试图从命令行获取错误消息,但xvfb返回错误消息:
error: Xvfb failed to start编辑2:
当我从命令中删除-- server -args时,它可以工作,但是我的服务器args中有什么问题呢?
发布于 2015-05-29 20:13:39
你可以使用大多数linux发行版上可用的Shutter工具来更容易地截图。
我在java中执行cutycapt没有问题,我想你错过了命令必须是像new String[] { "xvfb-run", "--server-args=\"......\"", .... }这样的单词数组。
这就是我成功运行它的方式:
linuxOperations.execute("CutyCapt", "--smooth",
"--url=http://localhost:8080/Heroes/web/card_generator?id=" + id + "&width=" + width + urlAddon,
"--out=/home/mladen/temp_image.png");
public class LinuxOperations {
public int execute(String[] cmdopt) {
Process process = null;
try {
process = Runtime.getRuntime().exec(cmdopt, null, new File("/numbeo/images/"));
return process.waitFor();
} catch (InterruptedException ex) {
Logger.getLogger(LinuxOperations.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(LinuxOperations.class.getName()).log(Level.SEVERE, null, ex);
}
return -1;
}https://stackoverflow.com/questions/14919314
复制相似问题