前提・実現したいこと
クライアントのリクエストによってサーバー機側でJFrameでのポップアップ画面を表示させたりRobotクラスでサーバー機を制御したいと思っております。
サービスで「デスクトップとの対話をサービスに許可」チェックを入れている状態で、以下のソースを実行しましたが、JFrameも表示されず、Robotも動作していません。ログを見ると"コンストラクタ"と"doGet"も出力されているので各メソッドはちゃんと通過しているように見えます。
また、トムキャット起動オプションの「-Djava.awt.headless=true」は使用せず起動させております。
どうすれば実現できるのか、ご教示ください。
各バージョン
Windows 8.1
Tomcat 8.5
Java 1.8.0_191
ソースコード
java
1import java.awt.Robot; 2 3import javax.servlet.ServletException; 4import javax.servlet.http.HttpServlet; 5import javax.servlet.http.HttpServletRequest; 6import javax.servlet.http.HttpServletResponse; 7import javax.swing.JFrame; 8 9 10public class MainShori extends HttpServlet { 11 private static final long serialVersionUID = 1L; 12 13 14 public MainShori() { 15 super(); 16 System.out.println("コンストラクタ"); 17 JFrame frame = new JFrame("制御画面"); 18 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 19 frame.setSize(400, 300); 20 frame.setVisible(true); 21 } 22 23 public void doGet(HttpServletRequest request, HttpServletResponse response) 24 throws IOException, ServletException{ 25 System.out.println("doGet"); 26 JFrame frame = new JFrame("リクエストオーダー表"); 27 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 28 frame.setSize(400, 300); 29 frame.setVisible(true); 30 try { 31 Robot robot; 32 robot = new Robot(); 33 robot.mouseMove(10,10); 34 } catch (Exception e) { 35 // TODO 自動生成された catch ブロック 36 System.out.println("エラー→" + e); 37 e.printStackTrace(); 38 } 39 } 40}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/02 06:36