java程序怎么在一个电脑上只启动一次,只开一个进程????

 我来答
百度网友fe6d0b6
2013-12-19 · TA获得超过275个赞
知道小有建树答主
回答量:397
采纳率:75%
帮助的人:267万
展开全部

给你发一个我的解决方案:

import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.channels.FileLock;

/**
 * FileLockManager 文件锁管理
 *
 */
/*
 * 修改历史
 * $Log$ 
 */
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;
}

}


当然这个只是判断文件是否存在,你可以该下,如果文件存在且被锁住才是已存在进程,否则就创建文件并锁住,如果文件已存在但未锁住,则直接锁住就可以了。
百度网友c2ac8041
2013-12-19 · TA获得超过880个赞
知道小有建树答主
回答量:468
采纳率:100%
帮助的人:260万
展开全部
单进程程序可以用端口绑定噢。程序启动的时候可以尝试看该端口是否已经被占用,如果占用则程序已经启动。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
王琳1102341326
2013-12-19
知道答主
回答量:31
采纳率:0%
帮助的人:16.4万
展开全部
你可以在java程序中创建一个隐藏文件,程序退出的时候删除这个文件。这样在程序启动的时候,你判断是否存在这个文件,如果存在说明已经启动。
追问
如果是意外情况呢,比如,程序死掉的情况......???
追答
这个就不好弄了,你也可以到网上下载一个软件exe4j,它的功能是把jar转换成exe,在转换的时候可以设置只启动一个进程。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式