重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
最快的,socket还要用占系统的端口,
专注于为中小企业提供成都网站制作、网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业临渭区免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
其实很简单,java程序启动是,先产生一个.lock的文件,并对此文件加锁,另一个就无法获得锁,听上去很复杂,其实实现很简单。程序如下
private boolean checkLock(){
FileOutputStream fo = null;
File file = new File(".lock");
try {
fo = new FileOutputStream(file);
//加锁,如果程序已经启动就无法获得锁
lock = fo.getChannel().tryLock();
if (lock == null) {
logger.warn("Warning Could not start epayment. this application is still alive.");
return false;
}else{
return true;
}
} catch (FileNotFoundException e) {
logger.error("checkSftp: lock file can't be created.error:" + e);
return false;
}catch (IOException e) {
logger.error("checkSftp: lock file can't be created.error:" + e);
return false;
}
}
你可以加个全局成员变量,表示上次执行的结果。方法内检测如果结果为空,则执行查询。否则直接返回变量的值。
s[i].length()!=0
i++;
一个是你条件的问题,二个是你越界的问题
加全局变量控制嘛。
demo:
public void add(Boolean flag)
{
if(flag==false)
{
//-------
your code here
//-----------
//-----after your code ----
flag=true;
//--------
}
}
public static void main(String args[])
{
Boolean flag=false;
add(flag);
......
add(flag);
}