我避免eclipse打开多个运行主窗口,写这样的代码:
public static void main(String args[]) {
      EventQueue.invokeLater(new Runnable() {
         public void run() {
            try {
               MainApp frame = MainApp.getInstance();
               frame.setVisible(true);
            } catch (Exception e) {
               e.printStackTrace();
            }
         }
      });
   }但非常不幸的是,居然还是能打开多个主窗口。
getInstance代码如下:   public static MainApp getInstance(){
      if(instance == null)
         instance = new MainApp();
      return instance;
   }

解决方案 »

  1.   

    1. instance 定义成static了?2. 你不会是启动了多次main,并预想它只出现一次吧?单例模式限定的是一个进程内的重复打开同样窗口,并不能用于程序的重复启动
      

  2.   

    我想你是启动了多次main吧,
    这是做不到的
      

  3.   

    MainApp 是否包含本身的一个static对象...
      

  4.   

    每次运行 main 相当于启动了一个进程。而所谓“单例”是在一个进程中,多个线程共享一个对象实例,而并非多个进程共享一个对象。
      

  5.   

    每个Java.exe一个进程,你的代码不涉及虚拟机级别的单例