我的程序里要用倒几个命令
于是实现
    public void UseOsCmd(String cmd) throws Exception{  
         //执行命令  
         Runtime runtime = Runtime.getRuntime();  
         Process process = runtime.exec(cmd);  
         System.out.println("#以下是命令["+cmd+"]的输出:");
         //读取命令输出  
         InputStreamReader reader = new InputStreamReader(process.getInputStream()); 
         LineNumberReader input = new LineNumberReader (reader);
         String line = "";
         while ((line = input.readLine ()) != null){
             System.err.println("[mkisofs:]"+line);
         } 
     }外面调用这个方法可是,有的时候 有的命令 却执行不了
就是也没有报错,却没有执行结果,
昨天晚上还有问题的,今天来run 却又没有问题了,
到了客户那还得有问题这里用到了 进程莫非哪里 死锁了俄?

解决方案 »

  1.   

    问题的关键在于你的cmd是什么
      

  2.   

    mkisofs linux 下面生成ISO文件的命令现在我稍微该了一点就可以了但是我想知道为什么,我把方法的 getInputStream方法换成 getErrorStream 方法,
        public void UseOsCmd(String cmd) throws Exception{  
             //执行命令  
             Runtime runtime = Runtime.getRuntime();  
             Process process = runtime.exec(cmd);  
             logger.info("#以下是命令["+cmd+"]的输出:");
             System.out.println("#以下是命令["+cmd+"]的输出:");
             //读取命令输出  
             InputStreamReader reader = new InputStreamReader(process.getErrorStream()); 
             LineNumberReader input = new LineNumberReader (reader);
             String line = "";
             while ((line = input.readLine ()) != null){
                 System.err.println("[mkisofs:]"+line);
             } 
         }然后输出的信息里有这么一句
    I: -input-charset not specified, using utf-8 (detected in locale settings)
    他是说我的编码有问题? 可是 iso 文件还是产生了
      

  3.   

    你的用户有执行这个java,javac 这两个文档的权限吗,你应该为linux这个用户加上读,写,运行这两个文档的权限呀,如果是你在用root进行编辑时,没有问题的话,而换了用户之后,产生如上述情况下,大都是这样的情况啦!