应用服务器上在线备份Oracle数据库代码

来源:互联网 发布:地理科学数据共享平台 编辑:程序博客网 时间:2024/06/08 10:37
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader; class StreamGobbler extends Thread {    InputStream is;    String type;     StreamGobbler(InputStream is, String type) {        this.is = is;        this.type = type;    }     public void run() {        try  {            InputStreamReader isr = new InputStreamReader(is);            BufferedReader br = new BufferedReader(isr);            String line=null;            while ( (line = br.readLine()) != null)                System.out.println(type + ">" + line);        } catch (IOException ioe) {            ioe.printStackTrace();        }    }} public class Test {    public static void main(String args[]) {    args = new String[1];    args[0]="exp zcgl/zcgl@db190 file=d:/test.dmp";            if (args.length < 1) {            System.out.println("USAGE: java GoodWindowsExec <cmd>");            System.exit(1);        }         try {            String osName = System.getProperty("os.name" );            System.out.println(osName);            String[] cmd = new String[3];             if( osName.equals( "Windows NT" ) ) {                cmd[0] = "cmd.exe" ;                cmd[1] = "/C" ;                cmd[2] = args[0];            } else if( osName.equals( "Windows XP" ) ) {                cmd[0] = "cmd.exe" ;                cmd[1] = "/C" ;                cmd[2] = args[0];            } else if( osName.equals( "Windows 95" ) ) {                cmd[0] = "command.com" ;                cmd[1] = "/C" ;                cmd[2] = args[0];            } else if( osName.equals( "Windows Vista" ) ) {                cmd[0] = "cmd.exe" ;                cmd[1] = "/C" ;                cmd[2] = args[0];            }             Runtime rt = Runtime.getRuntime();            System.out.println("Execing " + cmd[0] + " " + cmd[1]                               + " " + cmd[2]);            Process proc = rt.exec(cmd);            // any error message?            StreamGobbler errorGobbler = new                StreamGobbler(proc.getErrorStream(), "");             // any output?            StreamGobbler outputGobbler = new                StreamGobbler(proc.getInputStream(), "");             // kick them off            errorGobbler.start();            outputGobbler.start();             // any error???            int exitVal = proc.waitFor();            System.out.println("ExitValue: " + exitVal);        } catch (Throwable t) {            t.printStackTrace();        }    }}


做在线备份时,输出做一个修改,动态把输出内容传到浏览器页面上去。


原创粉丝点击