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

Java 21应用在macOS下无法接收浏览器拖拽图片URL问题

Java 21 GUI拖拽谷歌图片功能在macOS失效问题排查记录

问题背景

  • 开发的Java 21应用GUI支持将浏览器中谷歌图片拖拽至应用,会记录URL对应的DataFlavor,无有效DataFlavor时也会输出日志
  • Windows系统下Firefox测试功能正常,但macOS系统下Firefox、Safari测试完全失效,无任何日志输出
  • 添加异常日志及drop方法进入日志后,发现macOS下未触发drop方法,疑似系统在代码执行前阻止了拖拽操作;但从Finder拖拽图片至应用可正常工作
  • 负责该功能的类为ArtworkDropTarget,核心方法drop()代码如下:
[原代码内容保留]

排查过程更新

更新1:移除synchronized关键字

移除后可进入drop方法,但抛出异常:

[原错误日志内容保留]

更新2:移除多次getTransferData()调用

按建议修改后,问题仍未解决

更新3:调整DataFlavor检测顺序

将uriListFlavor的检测优先级置于urlFlavour之前后,功能恢复正常。判断原因为macOS的Java实现存在bug:系统报告支持某DataFlavor,但实际调用getTransferData()时却报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 20:28:10