0

私はJava Webアプリケーション(正確にはTapestry)としてパスワードマネージャーを作成しました。アイデアは次のとおりです。パスワードラベルの横にあるボタンをクリックすると、一致するパスワードがシステムクリップボードにコピーされます。Tomcat を標準の方法 (startup.bat を実行) で起動すると完全に機能しますが、それは必要ではありません。起動時にTomcatをWindowsサービスとして開始する必要がありますが、この場合、クリップボードへの対処を除いて、アプリケーションのすべてが完全に機能します。エラーは発生せず、ログにも何も問題はありません。テキストがコピーされないだけです。なぜそうなのか、何がそのような動作を引き起こす可能性があるのか​​、誰か教えてもらえますか? サービスにはクリップボードをいじる権利がないのでしょうか?もしそうなら、私はそれを機能させることができますか? どんな助けでも大歓迎です

4

1 に答える 1

1

tomcat がサービスとして実行される場合、メイン ウィンドウの GUI にリンクされたユーザーでは実行されないため、すべての awt 機能が無効になります。それらの一部を取り戻す唯一の方法は、追加することです

-Djava.awt.headless=true

tomcatの起動パラメータ - http://support.sas.com/kb/12/599.htmlを参照ローカルにログインしているユーザーと同じユーザーで tomcat を実行し、「.bat として実行」を最も簡単なオプションにする必要があります。

于 2012-11-04T00:52:22.560 に答える