java - Tomcat 作为服务无法使用系统剪贴板?

标签 java tomcat service

我制作了一个密码管理器作为 java web 应用程序(准确地说是 Tapestry),想法如下,当您单击密码标签旁边的按钮时,应将匹配的密码复制到系统剪贴板。当我以标准方式(运行 startup.bat)启动 tomcat 时,它工作得很好,但这不是我需要的。我需要我的 tomcat 在启动时作为 Windows 服务启动,但在这种情况下,我的应用程序中的所有内容都可以正常工作,除了处理剪贴板。没有错误发生,我在日志中也没有任何错误,文本只是不复制。 有人可以告诉我为什么会这样,什么会导致这种行为?难道服务无权乱用剪贴板吗?如果是这样,我可以让它工作吗? 欢迎任何帮助

最佳答案

当 tomcat 作为服务运行时,它不会以链接到主 Windows GUI 的用户运行,因此所有 awt 功能都被禁用。让其中一些恢复的唯一方法是添加

-Djava.awt.headless=true

到 tomcat 启动参数 - 参见 http://support.sas.com/kb/12/599.html 然而,这可能还不够,因为每个用户都有自己的控制台,因此 tomcat 将复制到它自己的用户控制台 - 您应该使用与本地登录用户相同的用户运行 tomcat,使“以 .bat 运行”成为最简单的选择。

关于java - Tomcat 作为服务无法使用系统剪贴板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13214960/

相关文章:

Windows azure,如何清除文件夹DevFCLogs?

c# - 如何为假货创建有意义的单元测试

java - GSON:fromJson(Reader json,类型 typeOfT) 与 fromJson(字符串 json,类型 typeOfT)

java - MongoDB 与 Morphia 的日常分组

java - 由于已经存在根应用程序上下文而无法初始化上下文,在 tomcat 中部署 war 失败

java - 部署到 Tomcat 7 OK 但无法访问应用程序

java - Play Framework 反向路由

java - 命令行 Java 计算器

java - 异常中的空堆栈跟踪

带参数的 C# 服务 onCustomCommand?