2013-02-17 61 views
2

運行CutyCapt我試圖採取截圖從Java與CutyCapt在Linux中。但由於某些原因,當我運行Java命令時,它不會等待CutyCapt完成截圖,而是立即返回,並且不會截取任何截圖。從Java

此命令在命令行工作,但沒有從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?

+0

可以使用下面的代碼拍攝屏幕截圖 'Robot robot = new Robot(); \t矩形screenRect =新的Rectangle(); screenRect.setSize(Toolkit.getDefaultToolkit()。getScreenSize()); \t \t BufferedImage createScreenCapture = robot.createScreenCapture(screenRect); \t ImageIO.write(createScreenCapture,「png」,new File(「/ home/visruth/Desktop/Screen.png」));' – Visruth 2013-02-17 09:14:01

回答

0

你可能更容易使用快門工具爲大多數Linux發行版提供截圖。

我已經通過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; 
    }