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程序的打包、服务创建工具的使用以及服务管理的一些基本知识。 首先,我们...
服务器端避免表单的重复提交,利用同步令牌来解决重复提交的基本原理如下:(1)用户访问提交数据的页面,服务器端在这次会话中,创建一个session对象,并产生一个令牌值,将这个令牌值作为隐藏输入域的值,随表单一起发送到...
本习题集收集了Java程序编写常见问题,并以习题形式总结和归纳Java程序设计知识要点,同时兼顾了SCJP(Sun公司 Java程序员认证考试),从而降低学习难度,减少编写程序出现错误的枘地,也便于掌握各个知识要点或测试...
`表示声明了一个整型变量age并赋值为25。 2. **数据类型**:Java有两大类数据类型:基本数据类型(如int、char、boolean)和引用数据类型(如类、接口、数组)。理解不同类型的特点和使用场景是编写有效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” 这样的错误提示。这个问题通常出现在启动基于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是一款功能强大的安装制作软件,它允许...
- **编译**: Java源代码首先会被编译成字节码(.class文件),这是一个中间形式,与具体的硬件平台无关。 - **解释**: 字节码由Java虚拟机(JVM)解释执行,使得Java程序可以在任何安装了JVM的平台上运行。 - **...
虽然描述中未提及,但一个完整的抽奖程序可能包括用户界面,允许用户输入设置或查看结果。这可能涉及到JavaFX或Swing库,创建图形窗口和交互元素。 9. **命令行接口(CLI)**: 如果是简单的版本,也可能只提供...
这个"164个完整的Java源程序代码"集合提供了一个丰富的学习资源,涵盖了多种Java编程概念和技术。通过研究这些源代码,我们可以深入理解Java编程的核心原理,并提升实际编程技能。 首先,这些Java源代码可能包括了...
总的来说,这个合集提供了一个全面的Java学习平台,涵盖了基础语法、图形用户界面设计、算法实现、游戏开发、网络编程等多个方面。对于想要深入理解和实践Java的开发者来说,这是一个不可多得的学习资源。通过分析和...
1. **OPC (OLE for Process Control)**:这是最常用的方式,它提供了一个标准接口,使得Java可以通过OPC服务器与PLC进行数据交换。Java中有很多开源的OPC客户端库,如J-OPC和Kepware等,可以方便地集成到项目中。 2...
java与c#MD5加密方法得到不一致解决办法,MD5加密后得到不一致结果
目录第1章 Java语言基础知识 1.1 Java语言与面向对象的程序设计 1.1.1 面向对象的程序设计思想 1.1.2 Java语言的特点 1.1.3 Java类库 1.2 Java程序概述 1.2.1 Java开发环境 1.2.2 Application举例 1.2.3 ...
巧用Java实现得到任意位永不重复的随机数,很经典的代码!