程序安装,升级及卸载核心部分(java编写)
2008-01-05 08:08:18 来源:WEB开发网核心提示:安装程序的工作:将源文件复制到相应的目录,升级程序的工作:将源文件中更新过的文件覆盖目的文件,程序安装,升级及卸载核心部分(java编写),增加的文件复制到相应的目录,卸载程序的工作:将程序文件夹的内容删除,针对以上内容,写一个简单的安装程序(主要文件:InstallSheildImpl
安装程序的工作:将源文件复制到相应的目录。
升级程序的工作:将源文件中更新过的文件覆盖目的文件,增加的文件复制到相应的目录。
卸载程序的工作:将程序文件夹的内容删除。
针对以上内容,写一个简单的安装程序
(主要文件:InstallSheildImpl,用递归的方式进行了文件夹的遍历)
/***********************************************************************
* Module: InstallSheild.java
* Author: Administrator
* Created: 2004-12-13 22:37:53
* Purpose: 安装程序接口,用于统一调用方式。
***********************************************************************/
package org.heixue.test.install;
/**
* @author Administrator
*/
public interface InstallSheild {
public final static int INSTALL=1;
public final static int UPDATE=2;
public final static int UNINSTALL=3;
public void install(int type,String srcFold,String destFold) throws InstallException ;
}
/***********************************************************************
* Module: InstallSheildImpl.java
* Author: Administrator
* Created: 2004-12-13 22:48:20
* Purpose: 安装程序的实现
***********************************************************************/
package org.heixue.test.install;
import java.io.*;
//import org.heixue.util.Log;
import org.heixue.util.FileLog;
import org.heixue.util.file.FileCopy;
/**
* @author Administrator
*/
public class InstallSheildImpl implements InstallSheild {
PRivate String srcFold=null;
private String destFold=null;
private FileLog log=null;
/**
*
*/
public InstallSheildImpl() {
}
/*
* @see org.heixue.test.update.InstallSheild#install(java.lang.String, java.lang.String, int)
*/
public void install(int type, String srcFold, String destFold) throws InstallException {
this.srcFold=srcFold;
this.destFold=destFold;
if(Config.getOut()!=null)
log=new FileLog(Config.getOut());
else
log=new FileLog(System.out);
if(destFold==null) throw new InstallException("您没有设置目的文件夹位置!");
switch(type){
case InstallSheild.INSTALL: if(srcFold==null) throw new InstallException("您没有设置源文件夹位置!");doInstall();break;
case InstallSheild.UPDATE: if(srcFold==null) throw new InstallException("您没有设置源文件夹位置!");doUpdate();break;
case InstallSheild.UNINSTALL:doUninstall();break;
default:throw new InstallException("没有这项操作!");
}
}
/**
* :
* #perpose: 安装程序,主要进行文件的拷贝.
*/
public void doInstall() throws InstallException{
if(srcFold==null) throw new InstallException("您没有设置源文件夹位置!");
if(destFold==null) throw new InstallException("您没有设置目的文件夹位置!");
更多精彩
赞助商链接