java程序在一个电脑上只启动一次,只开一个进程
2016-08-31 20:23
375 查看
方案1:
单进程程序可以用端口绑定。程序启动的时候可以尝试看该端口是否已经被占用,如果占用则程序已经启动。方案2:
你可以在java程序中创建一个隐藏文件,程序退出的时候删除这个文件。这样在程序启动的时候,你判断是否存在这个文件,如果存在说明已经启动。
import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; import java.nio.channels.FileLock; /** * FileLockManager 文件锁管理 * */ public class FileLockManager { private FileLock fileLock = null; private File file = null; private RandomAccessFile randomAccessFile = null; public FileLockManager(String fileName) { this.file = new File(fileName); } public FileLockManager(File file) { this.file = file; } /** * 文件加锁并创建文件 * * @return * @throws IOException */ public boolean Lock() throws IOException { if (!this.file.exists()) { this.file.createNewFile(); this.randomAccessFile = new RandomAccessFile(this.file, "rw"); this.fileLock = this.randomAccessFile.getChannel().tryLock(); if (this.fileLock.isValid()) { return true; } else { return false; } } else { return false; } } /** * 解锁并删除文件 * * @return * @throws IOException */ public boolean unLock() throws IOException { if (!this.file.exists()) { return true; } else { if (this.fileLock != null) { this.fileLock.release(); } if (this.randomAccessFile != null) { this.randomAccessFile.close(); } if (this.file.delete()) { return true; } else { return false; } } } /** * @return Returns the fileLock. */ public FileLock getFileLock() { return this.fileLock; } /** * @param fileLock * The fileLock to set. */ public void setFileLock(FileLock fileLock) { this.fileLock = fileLock; } }
相关文章推荐
- java程序怎么在一个电脑上只启动一次,只开一个进程
- JAVA调用系统命令或可执行程序--返回一个Runtime运行时对象,然后启动另外一个进程来执行命令
- 如何让指定程序启动一个Android系统中的Java进程
- 让一个程序运行一次,在它运行时,不允许再启动一个新的进程。
- linux用文件锁实现保证一个程序只能启动一个进程
- 一个程序只能启动一次实现
- 迅雷笔试题 (JAVA多线程)启动三个线程,分别打印A B C,现在写一个程序 循环打印ABCABCABC
- 通过互斥防止同一个程序启动多个进程
- linux用文件锁实现保证一个程序只能启动一个进程
- 如何启动一个命令,如何读取程序的一些内容和写一些东西到该进程中?
- 用shell启动和关闭一个java程序?
- C#程序多用户只启动一个进程的方法
- 在VC中实现一次执行一个进程,如果同时打开两个,则报该程序已经运行
- [Java 09 多线程] 线程是指一个进程在执行过程中可以产生更小的程序单元
- 在启动脚本中一般使用类似如下的命令执行一个Java程序
- 一个完整的java进程启动shell学习
- 用java程序启动电脑中的软件 分类: java 2009-11-05 01:03 355人阅读 评论(0) 收藏
- C#程序多用户只启动一个进程的方法
- C#程序多用户只启动一个进程的方法[转载]
- 启动一个程序使之成为守护进程