Java BuffereImage会导致MacOs上的程序冻结,但不会导致Windows上的程序冻结

Java BuffereImage会导致MacOs上的程序冻结,但不会导致Windows上的程序冻结,java,macos,lwjgl,bufferedimage,Java,Macos,Lwjgl,Bufferedimage,我正在使用一个抓取一个小组项目的应用程序屏幕截图。在我的Macbook Pro上,代码冻结了屏幕,而在我队友的PC的所有Windows上,它运行正常,并在其根目录中导出一个.png文件 代码 调试器不会转到BuffereImage构造函数,而是转到GLFWKeyCallbackI.callback,然后转到GLFWCursorEnterCallbackI.callback。在此之后,它完全停止 我试过的 在我的主类中,首先是生成缓冲映像的代码的其余部分: BufferedImage imageI

我正在使用一个抓取一个小组项目的应用程序屏幕截图。在我的Macbook Pro上,代码冻结了屏幕,而在我队友的PC的所有Windows上,它运行正常,并在其根目录中导出一个.png文件

代码 调试器不会转到BuffereImage构造函数,而是转到GLFWKeyCallbackI.callback,然后转到GLFWCursorEnterCallbackI.callback。在此之后,它完全停止

我试过的 在我的主类中,首先是生成缓冲映像的代码的其余部分:

BufferedImage imageIn = new BufferedImage(100,100,BufferedImage.TYPE_INT_RGB);
它还冻结了模拟,但它似乎确实执行了该行


我不确定我还能尝试什么,我看到2005年到今天的其他几篇帖子都在问类似的Mac问题,但都没有答案。

我深入研究了一下,发现了这个问题。正如在评论中提到的,如果我提供这个VM选项-Djava.awt.headless=true,它似乎可以解决问题。

有堆栈跟踪吗?没有,真的很烦人。它只是停止了。我没有解决方案给你,但也许看看本机mac日志和活动监视器中的一些内存统计数据,看看其中是否有有用的东西-可能是awt的系统问题。很可能,OpenGL和Java awt之间存在线程问题,可能还有MacOS进程主线程。天哪,我已经花了几个星期的时间来尝试同一件事,非常感谢你发布它!
imageIn = new BufferedImage(WIDTH, HEIGHT,BufferedImage.TYPE_INT_RGB);
BufferedImage imageIn = new BufferedImage(100,100,BufferedImage.TYPE_INT_RGB);