updatemanager.java
来自「java 开发的sip软电话 源码 jain sip」· Java 代码 · 共 143 行
JAVA
143 行
package net.java.mais.update;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.Vector;
import net.java.mais.common.NetworkAddressManager;
import net.java.mais.common.PropertiesDepot;
import net.java.mais.common.Utils;
public class UpdateManager extends Thread {
private boolean updated = false;
public UpdateManager(){
}
public boolean isUpdated(){
return updated;
}
public void run(){
PropertiesDepot.loadProperties();
Vector downloads = new Vector();
boolean ok = true;
String str[];
try{
str=check();
if(str!=null){
for(int i=1;i<str.length;i++)
if(!download(str[i],System.getProperty("EXEPATH")+File.separator+"update"+File.separator+(new File(str[i]).getName()))){
for(int j=1;j<str.length;j++)
delete(System.getProperty("EXEPATH")+File.separator+"update"+File.separator+(new File(str[i]).getName()));
ok = false;
}
if(ok){
PropertiesDepot.setProperty("net.java.mais.update.VERSION_UPDATE",str[0]);
PropertiesDepot.storeProperties();
}
}
}catch(Exception e){
System.out.println("DOWNLOADS: "+e.toString());
}finally{
System.out.println("UP TO DATE");
updated = true;
}
System.out.println("DOWNLOADS");
}
private boolean download(String src, String dst){
FileOutputStream fp = null;
int chunks = 0;
File file = null;
try{
String sendURL = src;
file = new File(dst);
new File(file.getParent()).mkdirs();
file.createNewFile();
fp = new FileOutputStream(file);
URL posting = new URL(sendURL);
InputStream in = posting.openStream();
byte b[] = new byte[1200];
for(int v=in.read(b);v>-1;v=in.read(b),chunks++)
fp.write(b,0,v);
fp.close();
}catch(Exception e){
try{
fp.close();
file.delete();
System.out.println("DELETED: "+file.getName());
}catch(Exception ee){
System.out.println("ERRO DELETE: "+e.toString());
file.deleteOnExit();
}
System.out.println("ERRO DOWN: "+e.toString());
System.out.println(dst);
return false;
}finally{
}
return (chunks>0);
}
private boolean delete(String dst){
try{
File file = new File(dst);
file.delete();
return true;
}catch(Exception e){
System.out.println("ERRO DOWNLOAD DELETE: "+e.toString());
System.out.println(dst);
return false;
}
}
private String[] check(){
String sendURL=Utils.getProperty("net.java.mais.update.VERSION_URL");
System.out.println("SENDURL: "+sendURL);
String versions[]=getVersion(sendURL);
if(!versions[0].equals(Utils.getProperty("net.java.mais.update.VERSION_UPDATE"))){
System.out.println(versions[0]);
return versions;
}
return null;
}
private String[] getVersion(String url){
String str="";
Vector list = new Vector();
NetworkAddressManager.setProxy();
try{
System.out.println("URL: "+url);
URL posting = new URL(url);
BufferedReader in = new BufferedReader(new InputStreamReader(posting.openStream()));
for(str = in.readLine();str!=null&&!str.equals("");str=in.readLine()){
System.out.println("VRS: "+str);
list.add(str);
}
in.close();
String versions[] = new String[list.size()];
list.copyInto(versions);
return versions;
}catch(Exception e){
System.out.println("ERRO VERSION : "+e.toString()+" "+url);
return null;
}
}
public static void main(String args[]){
UpdateManager um = new UpdateManager();
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?