两种办法:
1.用文件锁来控制;
2.Windows下配置成windows服务;
  Unix下配置成后台守护进程;

解决方案 »

  1.   

    unix设置成守护进程不能保证运行单个进程。可以通过打开一个local socket实现
      

  2.   

    监听本机上的一个端口,用ServerSocket来实现。每次程序启动时都要作判断,如果该端口已经被监听,则说明已经有程序实例运行,如果没有,那么开始监听这个端口,运行程序。
      

  3.   

    java如何使应用运行在后台,要用什么命令吗?
      

  4.   

    1.用文件锁来控制;
    用java nio中的FileLock,jdk1.4才有,看看这个帖子你就明白了
    http://www.chinajavaworld.net/forum/topic.cgi?forum=21&topic=16446&replynum=last#bottom
    http://javaalmanac.com/egs/java.nio/SharedLock.html?l=rel2.Windows下配置成windows服务;
      Unix下配置成后台守护进程;
    有一个开源的工具可以实现上面的功能,叫wrapper,
    具体网址可以到http://sorceforge.net里去搜索“wrapper”
      

  5.   

    有一个很简单的办法:
    程序启动后第一件事情是创建一个lock文件,比如
    main(){
      String lockFile = ".lock";
      File f = new File(lockFile);
      try{
         f.deleteFile(); 
         f.newFile();
      }catch(Exception){
      //已经运行
      System.exit();
      }
      ....
    }
      

  6.   

    谢谢各位朋友。
    最后问一个问题
    “java如何使应用运行在后台,要用什么命令吗?”
      

  7.   

    我觉得用端口比较好。java如何使应用运行在后台
    ???
    像系统服务一样?
      

  8.   

    一般设置文件锁比较好.
    我看eclipse Ea,等都是这么做的.:p