利用Apache commons exec 实现指定应用打开对应文件详解编程语言

         在实际工作中,我们有时候需要指定某一个应用,打开某一个文件。比如用播放器打开一个MP3音乐文件,用记事本打开一个文本文件。不过有的应用需要一些额外的参数,在具体使用的时候要注意。

package test.ffm83.commons.exec; 
 
  
 
import org.apache.commons.exec.CommandLine; 
 
importorg.apache.commons.exec.DefaultExecutor; 
 
importorg.apache.commons.exec.ExecuteWatchdog; 
 
importorg.apache.commons.exec.PumpStreamHandler; 
 
importorg.apache.commons.io.output.ByteArrayOutputStream; 
 
/** 
 
 * 通过commonsexec指定某一个应用打开某一个文件,比如用写字本打开txt文件 
 
 [email protected] 范芳铭 
 
 */ 
 
public class EasyExecFile { 
 
         publicstatic void main(String[] args) { 
 
                   EasyExecFileexec = new EasyExecFile(); 
 
                   exec.notepadReadFile("d:/ffm83/ffm83.txt"); 
 
         } 
 
  
 
         publicvoid notepadReadFile(String filePath) { 
 
                   Stringcommand = "notepad.exe " + filePath; 
 
                   try{ 
 
                            ByteArrayOutputStreamoutputStream = new ByteArrayOutputStream(); 
 
                            ByteArrayOutputStreamerrorStream = new ByteArrayOutputStream(); 
 
  
 
                            //命令行处理 
 
                            CommandLinecommandline = CommandLine.parse(command); 
 
                            //进行执行体 
 
                            DefaultExecutorexec = new DefaultExecutor(); 
 
  
 
                            exec.setExitValues(null); 
 
                            //利用监视狗来设置超时 
 
                            ExecuteWatchdogwatchdog = new ExecuteWatchdog(60000); 
 
                            exec.setWatchdog(watchdog); 
 
  
 
                            PumpStreamHandlerstreamHandler = new PumpStreamHandler( 
 
                                               outputStream,errorStream); 
 
  
 
                            exec.setStreamHandler(streamHandler); 
 
                            exec.execute(commandline);//执行 
 
  
 
                            Stringout = outputStream.toString("gbk"); 
 
                            Stringerror = errorStream.toString("gbk"); 
 
  
 
                            System.out.println(out); 
 
                            System.err.println(error); 
 
                   }catch (Exception e) { 
 
                            e.printStackTrace(); 
 
                   } 
 
         } 
 
} 
 
运行之后,打开了对应的txt文件。将文件关闭之后,进程结束。

转自:http://blog.csdn.net/ffm83/article/details/42266595

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/10354.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论