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);
}
}
分享到:
相关推荐
4. **程序启动和退出**:在Java中,可以通过`System.exit()`方法来终止程序,但重新启动程序需要借助操作系统API(如通过Runtime.getRuntime().exec())或使用外部脚本。 5. **设计模式**:AbstractRun.java可能...
然而,为了实现Java程序在Windows开机时自动启动,并且在用户登录之前就已经运行,我们需要将其转化为一个Windows服务。这个过程涉及到Java程序的打包、服务创建工具的使用以及服务管理的一些基本知识。 首先,我们...
Java应用程序开机自动启动是系统管理中的一个重要概念,它允许开发者创建的服务在操作系统启动时自动运行,无需用户手动干预。这在服务器维护、后台任务执行、持续监控等场景中非常常见。下面将详细介绍如何实现Java...
服务器端避免表单的重复提交,利用同步令牌来解决重复提交的基本原理如下:(1)用户访问提交数据的页面,服务器端在这次会话中,创建一个session对象,并产生一个令牌值,将这个令牌值作为隐藏输入域的值,随表单一起发送到...
本习题集收集了Java程序编写常见问题,并以习题形式总结和归纳Java程序设计知识要点,同时兼顾了SCJP(Sun公司 Java程序员认证考试),从而降低学习难度,减少编写程序出现错误的枘地,也便于掌握各个知识要点或测试...
Eclipse运行TOMCAT出现"a java exception has occurred"的解决办法 Eclipse是一款功能强大且广泛应用的集成开发环境(IDE),它支持多种编程语言,包括Java、C++、Python等。TOMCAT则是一款流行的Java Web服务器,...
`表示声明了一个整型变量age并赋值为25。 2. **数据类型**:Java有两大类数据类型:基本数据类型(如int、char、boolean)和引用数据类型(如类、接口、数组)。理解不同类型的特点和使用场景是编写有效Java代码的...
异常处理是JAVA程序设计中的另一个重要概念,用于处理运行时错误。书中可能有涉及try-catch-finally语句和自定义异常的例题,帮助学习者理解如何优雅地处理程序可能出现的问题,提高程序的健壮性。 最后,文件I/O和...
总之,"一些比较有意思的Java小程序"是一个很好的学习资源,它提供了实践和探索Java编程的多种途径。对于那些想要踏入Java世界的新手来说,这是一个很好的起点,也是不断提升编程技能的良好平台。
在Java编程领域,创建一个生日祝福程序是一种常见的实践,它能为用户提供个性化和有趣的互动体验。这个名为"生日祝福java程序代码"的压缩包显然包含了多个功能模块,旨在为生日庆祝活动增添乐趣。以下是该程序可能...
### "could not create the java virtual machine" 解决办法 在开发过程中,我们经常会遇到 “could not create the java virtual machine” 这样的错误提示。这个问题通常出现在启动基于Java的应用程序时,比如...
为了方便地启动Java应用程序(通常是以`.jar`文件的形式存在),我们可以创建一个批处理文件(`.bat`文件)。这个文件会调用Java运行时环境(JRE或JDK)来执行指定的`.jar`文件。此外,我们还将介绍如何通过参数设置...
Java有了它方便的一个方面,但是他同时也带给了开发者一个烦恼,这就是保护的办法不多,而且大多数不是很好用,这样自己辛苦开发出来的程序很容易被人反编译过来而据为己有,一般情况下,大多数的人都是用混编器...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...
本文主要探讨如何使用InstallShield工具来创建一个针对Java Web程序的.exe安装程序,该程序不仅包含了JDK(Java Development Kit),还集成了Resin服务器。 InstallShield是一款功能强大的安装制作软件,它允许...
"200道Java程序设计练习题 PDF" 是一个宝贵的资源,旨在帮助学习者从初级到高级逐步提升Java编程技能。这份资料不仅适合初学者,也对有经验的Java开发者具有很高的参考价值,尤其是对于准备Java面试的人来说,它能够...
这个名为"JAVA入门程序例子"的压缩包提供了初学者学习Java语言的良好资源,涵盖了基础语法、J2SE常用包的运用、Java Swing图形界面设计以及JDBC数据库连接技术。 1. **JAVA语法基础**: - **变量与数据类型**:...
- **编译**: Java源代码首先会被编译成字节码(.class文件),这是一个中间形式,与具体的硬件平台无关。 - **解释**: 字节码由Java虚拟机(JVM)解释执行,使得Java程序可以在任何安装了JVM的平台上运行。 - **...
这个“java做的抽奖小程序”就是这样一个实用工具,它利用Java编程语言实现,为用户提供了简单易用的抽奖功能。源码的提供不仅能让开发者深入理解抽奖程序的工作原理,还能够作为学习和参考的实例。 首先,我们来看...
总的来说,这个合集提供了一个全面的Java学习平台,涵盖了基础语法、图形用户界面设计、算法实现、游戏开发、网络编程等多个方面。对于想要深入理解和实践Java的开发者来说,这是一个不可多得的学习资源。通过分析和...