关注一下。
是不是可以在你的程序中设一个标记flag,就跟系统变量一样,程序一启动就把它设为1,每次程序启动之前都检查一下此标记,如果是0就启动,1就正常退出。

解决方案 »

  1.   

    这种东西网上有讨论的。提个思路,程序启动时对一个端口进行绑定,利用socket通信来做。
      

  2.   

    DreamHead(大头) 
    哪个网站?
      

  3.   

    你试试这段程序的思路import java.net.*;
    public class InstanceControl extends Thread {
     public void run() {
      try{
       Socket sock = new Socket("127.0.0.1",22222); 
    //创建socket,连接22222端口                   
      }
      catch (Exception e)
      {}
      try{
       ServerSocket server = new ServerSocket(22222);//创建socket,在22222端口监听
       server.accept(); //等待连接
       server.close(); //有连接到来,也就是说有新的实例
       System.exit(0); //这个实例退出
      }catch (Exception e)
      {
       e.printStackTrace();
      }
     }
    }public class ProgramMain {
     public static void main(String argv[])
     {
      InstanceControl ic = new InstanceControl();
      ic.start();
      mainFrame frame = new mainFrame();
     }
    }
      

  4.   

    可以用session保存用户的用户名
    如果该用户访问过该程序后
    标记记下
      

  5.   

    有没有相当于VB中函数App.PrevInstance的功能!
      

  6.   

    ppxstar(胖胖仙) System.exit(0); //这个实例退出???是退出虚拟机吗?那另外一个实例还能运行吗?
      

  7.   

    Java 里没有 App.PrevInstance 这种东西
    所以 每个 class 都是独立的
    即使两次执行同一个 class 他们的结果也完全一样
    想在代码里控制是不可能的
    所以 必须借助于外部的一些 独立于 Java 的东西作为 标志比如你可以利用文件 来标记
    每次运行时 检查一个特殊的文件 如果它存在 则退出
    如果不存在 那么就 建立这个文件
    在正常退出时删除这个文件 或修改文件里的内容 以清除标记
      

  8.   

    可以将session判断写到文件里
    再include进来
      

  9.   

    http://www.csdn.net/Develop/read_article.asp?id=17091搂主1000分给我,我给你源代码,包括dll的
      

  10.   

    上面的url是:
    http://www.csdn.net/develop/article/17/17091.shtm
      

  11.   

    System.exit(0); 和System.exit(1);有什么区别?
      

  12.   

    TO ppxstar(胖胖仙) 
    我的程序怎么退不出来
      

  13.   

    不知道程序二重启动是什么意思,若理解成不能打开两个实例,那就太简单了。你可以在类中设置一个静态的变量,在构造函数中设置此静态变量的值,并根据条件判断是否可以让构造函数成功返回。比如:
    public class test()

      private static int iFlag = 0 ; 
      public test()
      {
        iFlag ++ ;
        if (iFlag > 0)
        {
          System.exit(-1);
         }
      }
    }
      

  14.   

    不好意思,错了一点:
    不知道程序二重启动是什么意思,若理解成不能打开两个实例,那就太简单了。你可以在类中设置一个静态的变量,在构造函数中设置此静态变量的值,并根据条件判断是否可以让构造函数成功返回。比如:
    public class test()

      private static int iFlag = 0 ; 
      public test()
      {
        iFlag ++ ;
        if (iFlag > 1)
        {
          System.exit(-1);
         }
      }
    }
      

  15.   

    对于需要独立的对象只创建一次,看看effective java吧,我记得好象把构造方法设为私有,然后在static一个对象,只能调用这个对象,而不能在构造一个方法了。这有没有用呀?
      

  16.   


    谁能解释ppxstar(胖胖仙)的程序?