如何从java打开并使用cmd.exe

时间:2013-11-11 16:11:23

标签: java windows cmd

我必须从java打开cmd.exe,然后在同一个窗口中打开sqlplus.exe,但我不能。我可以做的是打开cmd,但我无法使用它,对于sqlplus.exe它似乎打开了一个不同的cmd.exe实例,我可以在netbeans java终端中看到来自sqlplus的欢迎消息,但无法生成querys。

这是我正在使用的代码

public void construirJob(String nombre,Fecha fecha,String direccionSQL){
    try {
         command[0] = "cmd";
         command[1] = "/c";
         command[2] = "start cmd.exe && cd C:/oraclexe/app/oracle/product/11.2.0/server/bin && dir && sqlplus.exe"
           + " && @"+direccionSQL+" && connect /as sysdba; && select * from v$tablespace;";
        JobDetail job = JobBuilder.newJob(HelloJob.class)
                .withIdentity(nombre+"JOB", "group1").build();

        String schedule=fecha.segundos+" "+fecha.minutos+" "+fecha.hora+" "+"*"+" "+"*"+" "+fecha.dia;
        Trigger trigger = TriggerBuilder
                .newTrigger()
                .withIdentity(nombre+"trigger", "group1")
                .withSchedule(
                        //CronScheduleBuilder.cronSchedule("0/10 * * * * ?"))
                        CronScheduleBuilder.cronSchedule(schedule))
                .build();

        //schedule it
        Scheduler scheduler = new StdSchedulerFactory().getScheduler();
        scheduler.start();
        scheduler.scheduleJob(job, trigger);
    } catch (SchedulerException ex) {
        Logger.getLogger(CronTriggerExample.class.getName()).log(Level.SEVERE, null, ex);
    }
}

1 个答案:

答案 0 :(得分:0)

我会看看apache commons exec 库。 http://commons.apache.org/proper/commons-exec/

还有关于如何使用此库的Turorial: http://commons.apache.org/proper/commons-exec/tutorial.html