免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2067 | 回复: 5
打印 上一主题 下一主题

java.lang.Runtime.exec()的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-12-13 16:13 |只看该作者 |倒序浏览
目标是实现从test1.txt中提取若干个列写入test2.txt中 代码如下

单独执行cat ./test1.txt   是没问题的,但是没法写入test2.txt中,其他几种命令都没有结果。是不是这个方法不支持awk,还是有其他什么问题?那位高人指点一下

  1. import gnu.getopt.*;
  2. import java.io.*;
  3. import java.util.*;
  4. import java.lang.*;
  5. public class test{

  6.         public static void main(String argv[])                                                                                                                                                            
  7.     {                  

  8.                   try
  9.                {
  10.                          Process child = Runtime.getRuntime().exec("colrm 1 29 < ./test1.txt >; test2.txt");
  11.                                 //Process child = Runtime.getRuntime().exec("cat ./test1.txt | awk '{print $7 $8 $9 $10 $11 $12}' >; test2.txt");       
  12.                                 //Process child = Runtime.getRuntime().exec("awk '{print $7 $8 $9 $10 $11 $12}' >; test2.txt");
  13.                                 //Process child = Runtime.getRuntime().exec("cat ./test1.txt  ");       
  14.                                 if (child.waitFor() == 0)
  15.                          {
  16.                     System.out.println("\r\nCreate test2" + ".txt" + " Successfully");   
  17.                                 }
  18.                                
  19.                                 else{
  20.                                         System.out.println("\r\n Failed to Create test2" + ".txt");
  21.                                         failedCount++;
  22.                                  }  
  23.                      }catch(java.lang.Exception se)
  24.                         {
  25.                                   System.out.println(" failed!");
  26.                                   failedCount++;
  27.                         }
  28.                     
  29.      }   //main                                                                                                                                                                                               
  30. }//class
复制代码

论坛徽章:
0
2 [报告]
发表于 2004-12-13 16:46 |只看该作者

java.lang.Runtime.exec()的问题

好像是>;的问题。只要命令行里包含了>;,就有可能不成功

论坛徽章:
0
3 [报告]
发表于 2004-12-13 16:51 |只看该作者

java.lang.Runtime.exec()的问题

那有其他方法实现吗??

论坛徽章:
0
4 [报告]
发表于 2004-12-13 16:57 |只看该作者

java.lang.Runtime.exec()的问题

把你要执行的命令写成脚本,由Java来调用。这样是最安全的。

论坛徽章:
0
5 [报告]
发表于 2004-12-13 17:11 |只看该作者

java.lang.Runtime.exec()的问题

下面这种方式也不行,但是没有 〉号啊

  1. import gnu.getopt.*;
  2. import java.io.*;
  3. import java.util.*;
  4. import java.lang.*;
  5. public class test{

  6.         public static void main(String argv[])                                                                                                                                                            
  7.     {                  

  8.                         fileJob = new PrintWriter( new FileWriter( "test2.txt" ) );
  9.                   try
  10.                {
  11.                                 Process child = Runtime.getRuntime().exec("awk '{print $7 $8 $9 $10 $11 $12}'");       

  12.                                 if (child.waitFor() == 0)
  13.                          {

  14.                                         BufferedReader br = new BufferedReader( new InputStreamReader(child.getInputStream() ) );
  15.                                    while (br.ready())
  16.                                   {
  17.                                                 System.out.println(3333);
  18.                             String a = br.readLine();                    
  19.                             System.out.println(a);
  20.                             fileJob.println(a);
  21.                             fileJob.flush();
  22.                                  }
  23.                                           br.close();
  24.                     System.out.println("\r\nCreate test2" + ".txt" + " Successfully");   
  25.                                 }
  26.                                
  27.                                 else{
  28.                                         System.out.println("\r\n Failed to Create test2" + ".txt");
  29.                                         failedCount++;
  30.                                  }  
  31.                      }catch(java.lang.Exception se)
  32.                         {
  33.                                   System.out.println(" failed!");
  34.                                   failedCount++;
  35.                         }
  36.                     
  37.      }   //main                                                                                                                                                                                               
  38. }//class
复制代码

论坛徽章:
0
6 [报告]
发表于 2004-12-14 10:44 |只看该作者

java.lang.Runtime.exec()的问题

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP