import java.awt.AWTException; import java.awt.Dimension; import java.awt.Rectangle; import java.awt.Robot; import java.awt.Toolkit; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; /** * Save an image of the desktop to a "screenshot.jpg". * * Usage: java ScreenShot [seconds] * seconds - optional number of seconds to wait prior to taking * the screen picture. */ public class ScreenShot { public static void main(String[] argv) throws Exception { if(argv.length > 0) { try { long time = Long.parseLong(argv[0]) * 1000L; System.out.println("ScreenShot in " + argv[0] +" second(s)..."); Thread.sleep(time); System.out.println("Snap!"); } catch(NumberFormatException nfe) { System.err.println(argv[0] + " is not a valid number of seconds."); System.exit(-1); } } BufferedImage img = ScreenShot.getScreenShot(); ImageIO.write( img, "JPG", new File("screenShot.jpg")); } public static BufferedImage getScreenShot() throws AWTException { Dimension size = Toolkit.getDefaultToolkit().getScreenSize(); Robot robot = new Robot(); return robot.createScreenCapture(new Rectangle(size) ); } }