爱心技术专栏专题

JAVA实现调用本地命令

摘录:java基础 来源:java基础 加入时间:2007年03月06日
摘要:
JAVA实现调用本地命令

请问能不能实现像在  运行窗口  里键入一行url,然后依靠文件关联打开指定文件呢。  
 
我知道Runtime.getRuntime().exec(String)可以实现调用…

转载:转载请保留本信息,本文来自
http://www.51dibs.com
/html/2006/article/info8/a_38eafb366f64a4a4.htm

JAVA实现调用本地命令

站点:爱心种子小博士 关键字:JAVA实现调用本地命令

   
JAVA实现调用本地命令
请问能不能实现像在  运行窗口  里键入一行url,然后依靠文件关联打开指定文件呢。  
 
我知道Runtime.getRuntime().exec(String)可以实现调用本地命令的功能,但怎么打开一个文件就不知道了。  
 
any  idea?  
---------------------------------------------------------------  
 
String  path  =  "e:\\Project1.exe";  
Runtime.getRuntime().exec("cmd  /c  start  "  +  path);  
---------------------------------------------------------------  
 
http://www.rgagnon.com/javadetails/java-0014.html  
Execute  an  external  program  
This  example  will  capture  the  output  (from  stdio)  of  an  external  program.  import  java.io.*;  
public  class  CmdExec  {  
   public  CmdExec(String  cmdline)  {  
       try  {  
         String  line;  
         Process  p  =  Runtime.getRuntime().exec(cmdline);  
         BufferedReader  input  =    
             new  BufferedReader  
                 (new  InputStreamReader(p.getInputStream()));  
         while  ((line  =  input.readLine())  !=  null)  {  
             System.out.println(line);  
             }  
         input.close();  
         }    
       catch  (Exception  err)  {  
         err.printStackTrace();  
         }  
     }  
 
public  static  void  main(String  argv[])  {  
   new  CmdExec("myprog.bat");  
   }  
}  
 
   
[myprog.bat]  
echo  hello  world!  
 
   
NOTE  1:  Reading  a  BAT  file  output  containing  the  dir  command  may  hang.  I  dont  know  why...    
NOTE  2:  To  make  a  shortcut  :  Create  a  shortcut  to  CmdExec.class.  Go  in  the  shortcut  properties  and  change  the  target  as  "java  CmdExec".  Change  the  run  option  to  Minimized  to  hide  the  black  DOS  console  when  the  BAT  is  executed.    
NOTE  3  :  A  useful  link  on  the  subject  :  JavaWorld  article,  thanks  to  O.  Thomann.    
--------------------------------------------------------------------------------  
 
The  following  example  start  a  Dial-up  connection  on  the  Win  plateform  :  [Dialup.java]  
public  class  Dialup  {  
     public  static  void  main(String[]  args)  throws  Exception  {  
         Process  p  =  Runtime.getRuntime().exec("dialup.bat");  
         p.waitFor();  
         System.out.println("Done.");  
         }  
     }  
   
The  BAT  file  contains  the  DOS  call  to  bring  the  Dialog.  The  "MyConnection"  is  the  DUN  and  its  case  sensitive.  [dialup.bat]  
rundll32.exe  rnaui.dll,RnaDial  MyConnection  
 
   
You  still  need  to  press  ENTER  to  CONNECT,  there  is  an  option  in  the  Connection  properties  to  connect  automatically.    
 
If  you  want  to  wait  until  the  BAT  file  is  finished,  use  "start  /wait".  [dialup.bat]  
start  /wait  rundll32.exe  rnaui.dll,RnaDial  MyConnection  
 
   
On  NT  and  W2K,  rnaui.dll  is  not  available.  Use  rasdial.exe  instead.  rasdial  "connection  name"  
rasdial  "connection  name"  /d  to  drop  
rasdial  /?  for  more  options  
 
   
 
 
 
--------------------------------------------------------------------------------  
 
To  launch  a  Unix  script  String[]  cmd  =  {"/bin/sh",  "-c",  "ls  >  hello"};  
Runtime.getRuntime().exec(cmd);  
 
   
 
 
 
--------------------------------------------------------------------------------  
 
You  can  include  a  path  for  the  program  to  be  executed.  On  the  Win  plateform,  you  need  to  put  the  path  in  quotes  if  the  path  contains  spaces  in  it.    public  class  Test  {  
     public  static  void  main(String[]  args)  throws  Exception  {  
         Process  p  =  Runtime.getRuntime().exec(  
             "\"c:/program  files/windows/notepad.exe\"");  
               p.waitFor();  
         }  
   }  
   
 
 
 
 
--------------------------------------------------------------------------------  
If  you  need  to  pass  arguments,  its  safer  to  a  String  array  especially  if  they  contain  spaces.  String[]  cmd  =  {  "myProgram.exe",  "-o=This  is  an  option"  };  
Runtime.getRuntime().exec(cmd);  
 
   
 
 
 
--------------------------------------------------------------------------------  
 
PDF  (Windows  only)  
[ShowPDF.java]  
public  class  ShowPDF  {  
     public  static  void  main(String[]  args)  throws  Exception  {  
         Process  p  =  Runtime.getRuntime().exec("showpdf.bat  mypdf.pdf");  
         p.waitFor();  
         System.out.println("Done.");  
         }  
     }  
 
[showpdf.bat]  
rundll32  url.dll,FileProtocolHandler  %1  
   
 
 
 
--------------------------------------------------------------------------------  
 
VBSCRIPT  
//  Win9x  
Runtime.getRuntime().exec("start  myscript.vbs");  
 
//  WinNT  
Runtime.getRuntime().exec("cmd  /c  start  myscript.vbs");  
 
   
 
 
 
--------------------------------------------------------------------------------  
 
HTML  Help  (Windows  only)  
Runtime.getRuntime().exec("hh.exe  myhelpfile.chm");  
 
   
 
 
 
--------------------------------------------------------------------------------  
 
Any  program  using  the  Windows  file  association  mechanism    
where  "file"  is  the  filename  of  the  data  file  ex.  myresume.doc  to  start  Word  if  the  doc  extension  is  associated  with  it.  Runtime.getRuntime().exec  
   ("rundll32  SHELL32.DLL,ShellExec_RunDLL  "  +  file.getAbsolutePath());  
 
   
 
 
 
--------------------------------------------------------------------------------  
Written  and  compiled  by  Réal  Gagnon  ©1998-2003    
---------------------------------------------------------------  
 
Runtime.getRuntime().exec("cmd  /c  start  E:\\test.txt");

作者Blog:http://blog.csdn.net/lovelyxc/

客户服务中心信箱:[email protected] [email protected] 网站地图

声明

合作伙伴: