Java做了一个应用程序,由于某些特定原因,不允许多次运行,请问:我想要在计算机上运行该程序,如果该程序已经有一个实例在运行,则给出错误提示?

解决方案 »

  1.   

    try as this.
    --------------------------------------------------------------------public class TestSingleton 

    private static final TestSingleton m_instance = new TestSingleton(); 

    private TestSingleton() {
    System.out.println("test singleton");


    public static TestSingleton getInstance() 
    {
    return m_instance; 
    } public  static void main(String[] args)
    {
    TestSingleton a;
    a = TestSingleton.getInstance();
    a = TestSingleton.getInstance();
    }
    }
      

  2.   

    楼上的只是一个Singleton模式
      

  3.   

    这可以采用Design pattern中的Singleton模式来实现
    具体实现的时候你可以在你的主类中采用Singleton模式,在程序加载的时候确保只有一个instance在内存中。
    example:
    public class Singleton {
      private static Singleton instance = null;
      
      public static synchronized Singleton getInstance() {
        if(instance==null)
          instance = new Singleton();
        return instance;
      }
    }
      

  4.   

    同意TinyJimmy(Jimmy)的实现方法,Singleton模式只能在同一个java虚拟机中使用
      

  5.   

    Singleton 的说法完全是胡说。TinyJimmy(Jimmy) 的方法很简单,只是如果用户有代码的多个 copy 时,应该就有问题了。在操作系统一级可以解决该问题。
      

  6.   

    Jimmy正解,eclipse就是采用这种方法
      

  7.   

    同意Jimmy的方法,但是方式还有很多,反正是占用一个排他的系统资源,比如本地tcp端口,文件等。