首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Java运行CutyCapt

从Java运行CutyCapt
EN

Stack Overflow用户
提问于 2013-02-17 16:32:25
回答 1查看 570关注 0票数 2

我试着在Linux中用CutyCapt从Java中截图。但是由于某些原因,当我从Java运行命令时,它不会等待CutyCapt完成截图,而是立即返回,没有截图。

此命令从命令行起作用,但从Java运行时不起作用。

代码语言:javascript
复制
xvfb-run --server-args="-screen 0, 1024x768x24" /usr/bin/cutycapt  --url=http://www.google.com/ --out=/home/screenshots/screenshot1.png  

下面是运行该命令的Java代码:

代码语言:javascript
复制
Process child = Runtime.getRuntime().exec(command);         
child.waitFor();

编辑:

我试图从命令行获取错误消息,但xvfb返回错误消息:

代码语言:javascript
复制
error: Xvfb failed to start

编辑2:

当我从命令中删除-- server -args时,它可以工作,但是我的服务器args中有什么问题呢?

EN

回答 1

Stack Overflow用户

发布于 2015-05-29 20:13:39

你可以使用大多数linux发行版上可用的Shutter工具来更容易地截图。

我在java中执行cutycapt没有问题,我想你错过了命令必须是像new String[] { "xvfb-run", "--server-args=\"......\"", .... }这样的单词数组。

这就是我成功运行它的方式:

代码语言:javascript
复制
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;
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14919314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档