You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS系统下AWT Robot调用截图接口仅返回桌面背景无法截取全屏如何解决

问题原因

这个问题是MacOS系统的权限管控机制导致的,和你写的代码逻辑无关。从MacOS 10.14 Mojave版本开始,系统对所有应用的屏幕录制类操作做了权限限制,没有获得屏幕录制权限的应用调用截图接口时,只能捕获到桌面背景内容,无法获取其他打开的应用窗口、系统菜单栏等画面。

解决方法

  • 给运行Java程序的载体授予屏幕录制权限:
    • 如果你是在Intellij IDEA中直接运行测试代码,打开【系统设置】→【隐私与安全性】→【屏幕录制】,在权限列表中找到Intellij IDEA,打开右侧的权限开关,重启IDEA后再运行代码即可正常截图。
    • 如果你是将程序打包为jar包在终端运行,给对应的终端工具(系统自带Terminal或iTerm2等第三方终端)开启上述屏幕录制权限,重启终端后再运行程序即可。
  • 多屏适配优化(可选):当前代码默认只捕获主屏幕内容,如果你有多块外接屏幕,可以通过GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()遍历所有显示设备,分别截图后拼接,即可实现多屏完整内容截取。
  • 适配问题排查:如果权限开启后仍无法正常截图,建议将JDK升级到11及以上的LTS版本,老版本OpenJDK对MacOS的Robot接口适配存在已知缺陷,升级后可解决大部分兼容性问题。

内容的提问来源于stack exchange,提问作者brevleq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 02:06:00