getSystemClipboard 因无头异常而失败

getSystemClipboard failed on headless exception

我正在尝试使用 getSystemClipboard 在 java 基于 Web 的应用程序中将文本复制到剪贴板:

Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();

但是我遇到了 java.awt.HeadlessException 异常,我不明白为什么,特别是因为 according the doc 这个异常与调用缺少的 IO 硬件有关(我有 keyboard/mouse 而不是打电话给他们)。

如何正确获取系统剪贴板?

编辑

感谢您的评论和 Roshana Pitigala 的回答,我理解了我的错误:实际上 Java 应用程序是 运行 在 DC 上而不是在用户本地环境中。因此获取用户系统剪贴板将获取 DC 剪贴板(而不是用户)。解决方案需要在客户端(即 运行 在客户环境中)。

尝试 运行 您的应用程序与 VM 参数,

-Djava.awt.headless=false

或者在获取剪贴板之前添加以下行。

System.setProperty("java.awt.headless", "false");