使用robot类的Java屏幕捕获

使用robot类的Java屏幕捕获,java,windows-7,Java,Windows 7,在xp中,我使用robot类捕获并将文件保存在C:drive上。它工作得很好,但当与Windows7一起使用时,我得到一个异常,说访问被拒绝,使用本机方法访问文件 是因为我使用的是C:drive,而不是系统tmp目录还是其他什么? 我没有Windows7在这里测试它,这就是为什么问 代码是这样的: Dimension screenSize; Rectangle screenRectangle; BufferedImage image; for (int i=0; i<j; i++){

在xp中,我使用robot类捕获并将文件保存在C:drive上。它工作得很好,但当与Windows7一起使用时,我得到一个异常,说访问被拒绝,使用本机方法访问文件

是因为我使用的是C:drive,而不是系统tmp目录还是其他什么? 我没有Windows7在这里测试它,这就是为什么问

代码是这样的:

Dimension screenSize;
Rectangle screenRectangle;
BufferedImage image;

for (int i=0; i<j; i++){
    img[i] = "C:\\"+(i+1)+".jpg"; //e.g 1.jpg saved in C: drive on 1st itr.
    screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    screenRectangle = new Rectangle(screenSize);
    image = robot.createScreenCapture(screenRectangle);
    ImageIO.write(image, "jpg", new File(img[i]));
}
维度屏幕大小;
矩形屏幕矩形;
缓冲图像;

对于(int i=0;i根目录的写入权限在Windows 7中默认为关闭。您可以将代码更改为

img[i]=(i+1)+“.jpg”


以便将屏幕捕获图像写入启动jvm的同一目录。

在Windows 7中,根目录的写入权限默认为关闭。您可以将代码更改为

img[i]=(i+1)+“.jpg”

为了将屏幕捕获图像写入启动jvm的同一目录。

请仔细阅读格式指南。请仔细阅读格式指南。