`
vvggsky
  • 浏览: 67346 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

防止JAVA程序重复启动的一个另类解决办法

    博客分类:
  • J2SE
阅读更多
http://www.iteye.com/topic/37732?page=1

控制这个程序在同一主机上只能启动一个实例

/**  
   * 检测系统是否只启动了一个实例  
   */  
  protected void checkSingleInstance() {   
    try {   
      srvSocket = new ServerSocket(srvPort); //启动一个ServerSocket,用以控制只启动一个实例   
    } catch (IOException ex) {   
      if(ex.getMessage().indexOf("Address already in use: JVM_Bind")>=0)   
        System.out.println("在一台主机上同时只能启动一个进程(Only one instance allowed)。");   
      log.fatal("", ex);   
      System.exit(0);   
    }   
  } 



//应用实例控制类
public class InstanceControl
{
  FileLock lock=null;
  //判断该应用是否已启动
  public boolean isRunning()
  {
    try
    {
      //获得实例标志文件
      File flagFile=new File("instance");
      //如果不存在就新建一个
      if(!flagFile.exists())flagFile.createNewFile();
      //获得文件锁
      lock=new FileOutputStream("instance").getChannel().tryLock();
      //返回空表示文件已被运行的实例锁定
      if(lock==null)return false;
    }catch(Exception ex){ex.printStackTrace();}
    return true;
  }

  public static void main(String[] args)
  {
    InstanceControl ic=new InstanceControl();
    if(ic.isRunning())
      JOptionPane.showMessageDialog(null,"已存在该程序的实例!","提示",JOptionPane.OK_OPTION);
    else
      MainClass.main(args);            
  }
}
分享到:
评论

相关推荐

    java程序自动重新启动

    4. **程序启动和退出**:在Java中,可以通过`System.exit()`方法来终止程序,但重新启动程序需要借助操作系统API(如通过Runtime.getRuntime().exec())或使用外部脚本。 5. **设计模式**:AbstractRun.java可能...

    java程序做windows服务,随机启动

    然而,为了实现Java程序在Windows开机时自动启动,并且在用户登录之前就已经运行,我们需要将其转化为一个Windows服务。这个过程涉及到Java程序的打包、服务创建工具的使用以及服务管理的一些基本知识。 首先,我们...

    java应用程序开机自动启动

    Java应用程序开机自动启动是系统管理中的一个重要概念,它允许开发者创建的服务在操作系统启动时自动运行,无需用户手动干预。这在服务器维护、后台任务执行、持续监控等场景中非常常见。下面将详细介绍如何实现Java...

    java实现防止表单重复提交

    服务器端避免表单的重复提交,利用同步令牌来解决重复提交的基本原理如下:(1)用户访问提交数据的页面,服务器端在这次会话中,创建一个session对象,并产生一个令牌值,将这个令牌值作为隐藏输入域的值,随表单一起发送到...

    Java程序设计习题集下载

    本习题集收集了Java程序编写常见问题,并以习题形式总结和归纳Java程序设计知识要点,同时兼顾了SCJP(Sun公司 Java程序员认证考试),从而降低学习难度,减少编写程序出现错误的枘地,也便于掌握各个知识要点或测试...

    Eclipse运行TOMCAT 出现在a java exception has occurred的解决办法。

    Eclipse运行TOMCAT出现"a java exception has occurred"的解决办法 Eclipse是一款功能强大且广泛应用的集成开发环境(IDE),它支持多种编程语言,包括Java、C++、Python等。TOMCAT则是一款流行的Java Web服务器,...

    自考java 04747《Java语言程序设计(一)》教材电子版

    `表示声明了一个整型变量age并赋值为25。 2. **数据类型**:Java有两大类数据类型:基本数据类型(如int、char、boolean)和引用数据类型(如类、接口、数组)。理解不同类型的特点和使用场景是编写有效Java代码的...

    一些比较有意思的Java小程序

    总之,"一些比较有意思的Java小程序"是一个很好的学习资源,它提供了实践和探索Java编程的多种途径。对于那些想要踏入Java世界的新手来说,这是一个很好的起点,也是不断提升编程技能的良好平台。

    java 求爱 小程序

    LoveForEver.java很可能包含了一个主类,这个类包含了整个求爱小程序的启动点和主要功能。在Java中,通过`public static void main(String[] args)`方法来定义程序的入口点。 【love.exe】是Windows操作系统下的可...

    could not create the java virtual machine 解决办法

    ### "could not create the java virtual machine" 解决办法 在开发过程中,我们经常会遇到 “could not create the java virtual machine” 这样的错误提示。这个问题通常出现在启动基于Java的应用程序时,比如...

    Java程序启动器 Java program launcher.exe

    解决双击 jar 和 class文件不能直接在windows命令提示符下运行的问题,不用手动修改注册表和环境变量,把文件的打开方式设为本程序即可

    JAVA加密 保护源代码 防止反编译的工具

    Java有了它方便的一个方面,但是他同时也带给了开发者一个烦恼,这就是保护的办法不多,而且大多数不是很好用,这样自己辛苦开发出来的程序很容易被人反编译过来而据为己有,一般情况下,大多数的人都是用混编器...

    微信小程序+Java后台完整代码

    在“微信小程序+Java后台完整代码”中,我们可以看到一个完整的电商解决方案,包括前端的小程序部分和后端的Java服务。小程序商城的部分主要负责展示商品、处理用户交互、实现购物车功能、订单管理以及支付流程等。...

    java源码包---java 源码 大量 实例

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    Java B/S 抽奖程序

    总的来说,Java B/S 抽奖程序是一个结合了前端交互设计和后端逻辑处理的综合性项目,它展示了Java在Web开发领域的强大能力。无论是对于初学者还是经验丰富的开发者,这样的程序都提供了学习和实践的绝佳机会。通过对...

    InstallShield 制作安装程序(java web程序)

    本文主要探讨如何使用InstallShield工具来创建一个针对Java Web程序的.exe安装程序,该程序不仅包含了JDK(Java Development Kit),还集成了Resin服务器。 InstallShield是一款功能强大的安装制作软件,它允许...

    200道Java程序设计练习题 PDF

    "200道Java程序设计练习题 PDF" 是一个宝贵的资源,旨在帮助学习者从初级到高级逐步提升Java编程技能。这份资料不仅适合初学者,也对有经验的Java开发者具有很高的参考价值,尤其是对于准备Java面试的人来说,它能够...

    04747《Java语言程序设计(一)》教材电子版.pdf

    - **编译**: Java源代码首先会被编译成字节码(.class文件),这是一个中间形式,与具体的硬件平台无关。 - **解释**: 字节码由Java虚拟机(JVM)解释执行,使得Java程序可以在任何安装了JVM的平台上运行。 - **...

    windows 系统下启动与结束java的jar包的脚本(包括如何设置进程名称)

    为了方便地启动Java应用程序(通常是以`.jar`文件的形式存在),我们可以创建一个批处理文件(`.bat`文件)。这个文件会调用Java运行时环境(JRE或JDK)来执行指定的`.jar`文件。此外,我们还将介绍如何通过参数设置...

Global site tag (gtag.js) - Google Analytics