可能是苹果JVM的一个bug:java.lang.OutOfMemoryError:Java堆空间不足,位于apple.awt.CRobot.getRGBPixels(CRobot.java:204)处。
可能是苹果JVM的一个bug:java.lang.OutOfMemoryError:Java堆空间不足,位于apple.awt.CRobot.getRGBPixels(CRobot.java:204)处。
我截图时遇到了问题,以下是我的测试代码。
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上,使用OS X 10.6.4和Java 1.6.0_20-b02-279-10M3065,在两次迭代后失败了。在Windows上似乎正常工作。你能重现这种行为吗?
Exception in thread \"main\" java.lang.OutOfMemoryError: Java heap space
at apple.awt.CRobot.getRGBPixels(CRobot.java:204)
at java.awt.Robot.createScreenCapture(Robot.java:329)
at Test.main(Test.java:16)
admin 更改状态以发布 2023年5月19日