我正在尝试使用 getSystemClipboard 将文本复制到基于 java Web 的应用程序中的剪贴板:
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
Run Code Online (Sandbox Code Playgroud)
但我遇到了java.awt.HeadlessException
异常,我不明白为什么,特别是因为根据文档,这个异常与调用缺少的 IO HW 有关(并且我有键盘/鼠标,但没有调用它们)。
我应该怎么做才能正确获取系统剪贴板?
感谢您的评论和 Roshana Pitigala 的回答,我理解了我的错误:实际上 Java 应用程序是在 DC 上运行,而不是在用户本地环境中运行。因此,获取用户系统剪贴板将获取 DC 剪贴板(而不是用户)。该解决方案需要位于客户端(在客户环境中运行)。
尝试使用 VM 参数运行您的应用程序,
-Djava.awt.headless=false
Run Code Online (Sandbox Code Playgroud)
或者在获取剪贴板之前添加以下行。
System.setProperty("java.awt.headless", "false");
Run Code Online (Sandbox Code Playgroud)