尝试获取剪贴板示例时。
Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();
此外,我已经尝试运行Spring Boot 应用程序设置头部。
SpringApplicationBuilder builder = new SpringApplicationBuilder(SpringBootApplication.class,args);
builder.headless(false).run(args);
我们正处于例外之下。
java.awt.HeadlessException
at sun.awt.HeadlessToolkit.getSystemClipboard(HeadlessToolkit.java:309)
at com.kpit.ecueditor.core.utils.ClipboardUtility.copyToClipboard(ClipboardUtility.java:57)
有人能告诉我我错过了什么吗?
如果我在简单的Java应用程序中运行相同的剪贴板代码,它可以工作,但在Sping Boot 应用程序中不行。
4条答案
按热度按时间wz8daaqr1#
代替此行
使用
会成功的
wfveoks02#
在Swing应用程序中使用Sping Boot 2时,我遇到了同样的异常。
下面是一个对我有效的例子:
在主类中:
在test类中,你需要设置java.awt.headless属性,这样你在测试代码时就不会得到java.awt.HeadlessException:
对于那些有这个例外的人,使用JavaFX this answer可能会有所帮助。
inb24sb23#
您还可以在运行应用程序时只传递a JVM参数,而不需要更改代码:
-Djava.awt.无头=假
在Spring Boot2.2.5.版本上进行测试
x8diyxa74#
我也遇到过同样的问题,这里显示的所有解决方案都不起作用。最后注意到数据库服务器用户ID被禁用了,因此发生了这种情况,不需要修改代码。这个错误是非常误导的。
建议遇到类似情况的人验证堆栈跟踪,如果数据库连接类出现此错误,请通过简单的Java类/IDE而不是Sping Boot 测试数据库。