使用 Java Robot 类截屏时出错

使用 Java Robot 类截屏时出错

我尝试使用 NetBeans 中的 Java Robot 类进行截图,如下所示

    try {
Rectangle screen = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
BufferedImage capture  = new Robot().createScreenCapture(screen);

ImageIcon icon = new ImageIcon(capture);
jLabel1.setIcon(icon);


}catch(Exception  ex){
JOptionPane.showMessageDialog(null, ex);
}

我得到了这个错误

Java 运行时环境检测到致命错误:SIGSEGV (0xb) at pc=0x00007f58931331d8, pid=3254, tid=0x00007f5890750700 JRE 版本:Java(TM) SE 运行时环境 (8.0_171-b11) (build 1.8.0_171-b11) Java VM:Java HotSpot(TM) 64 位服务器 VM (25.171-b11 混合模式 linux-amd64 压缩 oops) 有问题的框架:C [libawt_xawt.so+0x421d8] ReadRegionsInList+0x3b8 核心转储已写入。默认位置:/home/sanaa/Desktop/server/RobotExample/core 或 core.3254

知道是什么原因导致了错误吗?

笔记:我在 windows-32bits /Netbeans 中使用了相同的代码,并且可以正常工作

答案1

看起来你打了一个分段故障在你的 Java 运行时中:

我无法确切地告诉你你的问题是什么,但我可以告诉你,不知何故,JRE 试图访问、分配或释放不属于它的内存,因为官方文档中有解释

首先确保您拥有最新版本的 JRE,并且它适合您的操作系统(还要确保 32 位和 64 位是正确的)。

如果您能够可靠地重现该问题并且它是在正确安装的最新版本的 JRE 上,我建议您向 Oracle 提交官方错误报告。

相关内容