getSystemClipboard 因无头异常而失败

Asf*_*sfK 4 java clipboard

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

Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
Run Code Online (Sandbox Code Playgroud)

但我遇到了java.awt.HeadlessException异常,我不明白为什么,特别是因为根据文档,这个异常与调用缺少的 IO HW 有关(并且我有键盘/鼠标,但没有调用它们)。

我应该怎么做才能正确获取系统剪贴板?

编辑

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

Ros*_*ala 7

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

-Djava.awt.headless=false
Run Code Online (Sandbox Code Playgroud)

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

System.setProperty("java.awt.headless", "false");
Run Code Online (Sandbox Code Playgroud)