アプリケーション・サーバ上のOracleデータベース・コードのオンライン・バックアップ


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();
        }
    }
}

オンラインバックアップを行う場合、出力を変更し、出力内容をブラウザページに動的に転送します.
作者:qm 4050发表于2013-2-28 10:34:34原文链接
読書:75コメント:0コメントの表示