while ((line = input.readLine ()) != null)
{
   System.out.println(line);//或者另开一个线程,在屏幕上某个地方显示这个执行过程的数据
}
System.out.println("All is Over");//假如这句打印出来了,就代表执行完了呀。
如果要想弹出一个窗口,那么你把命令写到一个bat文件中,然后执行这个bat文件就可以了。

解决方案 »

  1.   

    http://expert.csdn.net/Expert/topic/2876/2876311.xml?temp=.3902246
      

  2.   

    就是说上面的代码执行我想要执行的操作是正确的是吗?
    “另开一个线程,在屏幕上某个地方显示这个执行过程的数据”这句话不太懂,可以在屏幕上任何地方显示执行过程?我非常需要这样的操作,但是就是不知道怎么做;
    打印的那句是加在那后面吗?
    我很想说明的是:每次一执行这个命令,速度就特别的慢,好象程序一直在运行当中一样,也不出什么提示,我现在正在运行BAT当中的命令,会弹出DOS窗口吗?就像我在开始运行当中相同命令操作的那种情景吗?
      

  3.   

    类似于如下代码可以实时打印执行的情况,你不用另开线程了,有点麻烦
      
        Process p = null;
        Properties envVars = new Properties();
        Runtime r = Runtime.getRuntime();
        try
        {
        p = r.exec( "cmd.exe /c chkdsk" );
        BufferedReader br = new BufferedReader ( new InputStreamReader( p.getInputStream() ) );
        String line;
        while( (line = br.readLine()) != null ) {
            System.out.println(line);
        }
        }
        catch(Exception e)
        {
          e.printStackTrace();
        }
      }
      

  4.   

    以下是我的全部的代码,我想最终控制的就是数据导入或导出时的进度和执行情况,这样一些还是会出问题,一执行程序就不完成,好象定在那一样,而且相关目录下也没有产生所想要的文件,比如下例的crm.dmp,我也曾写到批处理文件中过,相同的命令还是程序一直在执行而且 没有反映,这是什么原因呢?
    package org.apache.poi.hssf.usermodel.examples;
    import java.io.*;
    import java.util.Properties;public class dos{    public static void main(String[] args)
        {
    Process p = null;
    Properties envVars = new Properties();
    Runtime r = Runtime.getRuntime();
    try
    {
    p = r.exec( "c:\\exp crm/crm@crm_192.168.118.242 file=c:/crm.dmp;" );
    BufferedReader br = new BufferedReader ( new InputStreamReader( p.getInputStream() ) );
    String line;
    while( (line = br.readLine()) != null ) {
        System.out.println(line);
    }
    }
    catch(Exception e)
    {
      e.printStackTrace();}
    }}
      

  5.   

    我的QQ是42362609,加入时请填写“EXEC”,因为事情很急,所以请高手们指教。现在的问题是在EXEC那里写“cmd.exe/c dir”是可以正常运行的,打印出来的就是执行工程下的目录显示,但是如果将dir换成了exp crm/crm@crm_192.168.118.242 file=c:/crm.dmp;程序就会一直在执行也不显示别的什么内容,直到人为的将它终止,所生成的文件才会在C盘出现,这到底是什么原因呢??
      

  6.   

    是EXEC只能调用DOS的内部命令不能调用外部命令?还是我在EXEC中写的EXP命令不正确或不完整呢?
      

  7.   

    p = r.exec( "c:\\exp crm/crm@crm_192.168.118.242 file=c:/crm.dmp;" );
    这个命令单独在DOs窗口下运行是好着的么?p = r.exec( "cmd.exe \s c:\\exp crm/crm@crm_192.168.118.242 file=c:/crm.dmp;" );你在前面加一个cmd.exe试试
      

  8.   

    我在前面加了一个cmd.exe以后,变成了这样:p = r.exec( "cmd.exe /s exp crm/crm@crm_192.168.118.242 file=c:/crm.dmp" );倒是一下就运行完了,但是在C盘下也没有生成相关文件即crm.dmp,也没有打印出任何执行信息,是不是还是哪个地方写得不对呢?
    exp crm/crm@crm_192.168.118.242 file=c:/crm.dmp;这条指令在DOS窗口下是运行正常的啊
      

  9.   

    在你启动你的程序的时候就开个dos窗口(dos窗口和你的java程序一起运行),不就行了。
      

  10.   

    开个DOS窗口?运行一个CMD在那挂着?那没什么用啊,就差这一点了,怎么都搞不定,要不就没显示完成,程序一直在运行(cmd.exe /c ...);要不就一下就完成但是文件也不生成,也没有任何执行信息(cmd.exe /s ...).郁闷啊
      

  11.   

    没有人知道了吗?哪怕执行的时候跳出一个同样的DOS窗口也行啊,或者提示完成也可以,不知道怎么搞的,就是EXP命令无法执行,调用文件里的其他EXE文件都是可以的,谁帮帮我啊