Java 尝试的全局鼠标侦听器停止运行,没有错误

Java 尝试的全局鼠标侦听器停止运行,没有错误,java,Java,以下是我最近编写的一些代码: import java.awt.*; import java.awt.event.*; import java.awt.Toolkit.*; public class Test{ public static void main(String[] args){ Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener() {

以下是我最近编写的一些代码:

import java.awt.*;
import java.awt.event.*;
import java.awt.Toolkit.*;
public class Test{
    public static void main(String[] args){ 
            Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener() {
                public void eventDispatched(AWTEvent e) {
                    if(e instanceof MouseEvent){
                        MouseEvent event = (MouseEvent)e;
                        if(event.getID() == MouseEvent.MOUSE_PRESSED){}
                            System.out.println("test");
                        }
                    }
                }
            }, AWTEvent.MOUSE_EVENT_MASK);

    }
}

它编译得非常好。但是,当我运行它时,它会运行大约5秒钟,然后退出(控制台上没有消息),当我在短时间内单击鼠标时,程序运行时,没有消息打印到控制台。我已经尝试增加程序的最大内存,但是,正如我所预料的,除了运行时间稍长之外,没有其他变化。谢谢

就我所能测试的而言,这对我来说是有效的

public static void main(String args[]) {                                                  
  Test0 t=new Test0();

  t.setVisible(true);

        Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener() {
            public void eventDispatched(AWTEvent e) {
                if(e instanceof MouseEvent){
                    MouseEvent event = (MouseEvent)e;
                    if(event.getID() == MouseEvent.MOUSE_PRESSED){}
                        System.out.println("test "+System.currentTimeMillis());
                    }
                }
            }, AWTEvent.MOUSE_EVENT_MASK);

}

如果Test0是某个组件

您不能使用Java的GUI库在整个操作系统中全局监视鼠标,您需要使用某种本机钩子在
main
方法主体的末尾