如果不用start,不会出现另一个dos窗口,start 是一个windows下的命令,产生一个新窗口

解决方案 »

  1.   

    我想连一个DOS窗口都不出现^_^
      

  2.   

    to:
     楼主我也是在搞哪个问题
    没搞出老师说还要很多东西
    我很久没来增分了
    老师用过web服务器
      

  3.   

    好像可以通过windows的某种script 来解决此问题!
      

  4.   

    那个Dos窗口真的那么讨厌吗?
      

  5.   


    import java.io.*;public class errout {
      public static void main(String[] args) {
        Process listmgr;
        DataInputStream addResult;
        int BUFFER_SIZE = 1000;
        int byteCount = -1;    String s = new String("cmd dir");
    //    for (int i = 0; i < args.length; i++)
    //           s = s + " " + args[i];
          try{
            listmgr = Runtime.getRuntime().exec(s);
            addResult = new DataInputStream(
                new BufferedInputStream(listmgr.getInputStream()));
            byte[] resultBuf = new byte[BUFFER_SIZE];
            byteCount = addResult.read(resultBuf);
            if (byteCount != -1) {
              String result = new String(resultBuf).trim();
              System.out.print(result);
            }
            else
              System.out.println("No Data");
          }
          catch(IOException e){e.printStackTrace();}
       }
      }
      

  6.   

    谢谢你的方法,但是由于rmiregistry执行后并不会返回,所以其窗口将一直开着,输出我已经截获了,但是仍然无法去除dos窗口
      

  7.   

    下面的可以解决,
    关键是起个线程 
    private void runRmiRegistry(int port) {
            String str = System.getProperty("java.home") + "/bin/rmiregistry";
            if (port == -1) port = 1099;
            if (!(new PortChecker()).isPortFree("localhost", port, "TCP")) {
                log.info("Port is not free " + port);
            } else {
                log.info("Starting rmi registry ...");
                try {
                    cmd = Runtime.getRuntime().exec(str+ " "+port, null, null);
                    // Redirect output
                    output_ = new StreamRedirect(cmd.getInputStream());
                    // kick it off
                    output_.start();
                    log.info("Rmi registry started");
                } catch (java.io.IOException exp) {
                    log.error("Can not start rmi registry", exp);
                }
            }
        }public class StreamRedirect extends Thread {
        InputStream is_;
        private static Logger log = Logger.getLogger(StreamRedirect.class);    public StreamRedirect(InputStream is) {
            is_ = is;
        }    public void run() {
            try {
                InputStreamReader isr = new InputStreamReader(is_);
                BufferedReader br = new BufferedReader(isr);
                String line = null;
                while ((line = br.readLine()) != null)
                    log.info(line);
            } catch (IOException ioe) {
                ioe.printStackTrace();
            }
        }
      

  8.   

    冒昧的问一句楼主,你是使用RMI做client/server应用吧,为什么要单独启动rmiregistry呢?
    不能在你的服务器端代码中启动他吗?
      

  9.   

    就是在服务器端启动他啊,只是启动后又一个dos窗口,不好怎么除掉
      

  10.   

    使用masterz(MS MVP) 的程序,然后用javaw.exe启动这个程序。这样就不会有窗口了。
      

  11.   

    这些程序各位都运行过么?为什么我运行的时候 总会有rmiregistry的DOS窗口呢?
      

  12.   

    实在不行就在服务器端用C/C++写一个启动程序(在windowsNT下可以做一个系统服务)