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  don't  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  it's  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,  it's  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");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值