Возможная ошибка Apple JVM: java.lang.OutOfMemoryError: пространство кучи Java в apple.awt.CRobot.getRGBPixels (CRobot.java:204) - PullRequest
0 голосов
/ 06 октября 2010

У меня возникают проблемы, когда я делаю скриншоты.Это мой тестовый код.

import java.awt.Robot;
import java.awt.AWTException;
import java.awt.image.BufferedImage;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.Dimension;

public class Test {
        public static void main(String[] args) throws AWTException {
            Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
            int[] pixels = new int[(int) (screenSize.getWidth() * screenSize.getHeight()) * 3];
            Robot robot = new Robot();
            int i = 0;

            while (true) {
                robot.createScreenCapture(new Rectangle(screenSize))
                     .getRaster().getPixels(0, 0, (int) screenSize.getWidth(), (int) screenSize.getHeight(), pixels);
                System.out.println(++i);
            }
        }
}

На моем Mac * s * с OS X 10.6.4 и Java 1.6.0_20-b02-279-10M3065 происходит сбой после двух итераций.Вроде нормально работает на винде.Можете ли вы воспроизвести это поведение?

Исключение в потоке "main" java.lang.OutOfMemoryError: пространство кучи Java на apple.awt.CRobot.getRGBPixels (CRobot.java:204) на java.awt.Robot.createScreenCapture (Robot.java:329) в Test.main (Test.java:16)

1 Ответ

3 голосов
/ 06 октября 2010

OutOfMemory означает, что вам нужно дать программе больше памяти .В наши дни это происходит чаще всего на Mac, поскольку Java сейчас там 64-битная, и ей нужна большая куча.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...