java - getSystemClipboard 因 headless 异常而失败

标签 java clipboard

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

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

但我遇到了java.awt.HeadlessException 异常,我不明白为什么,特别是因为according the doc此异常与调用缺少的 IO 硬件有关(我有键盘/鼠标但未调用它们)。

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

编辑

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

最佳答案

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

-Djava.awt.headless=false

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

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

关于java - getSystemClipboard 因 headless 异常而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52812363/

相关文章:

php - 如果执行的命令写入剪贴板,则 passthru 挂起

delphi - 如何将任意数据作为文件复制到剪贴板?

java - 将值放入 DynamoDB 表中,并将属性作为对象集

"Editing Java Source"中的 Java Eclipse 调试快捷方式

java - 如何按正确顺序将 LinkedHashMap 值转换为 ArrayList/Array?

c# - 如何处理阻塞的剪贴板和其他异常情况

java - 在 Java 中复制到剪贴板

使用 RenderThread 和 UpdateThread 进行游戏的 Java LinkedList 迭代器和线程安全

java - 以贪婪的方式分配给定的数字

c# - 如何在 C# 中以编程方式保存用户使用 CTRL-C 复制到剪贴板的 Outlook 电子邮件附件(例如 PDF)