Java 调用EXE

转载自    Java 调用EXE

使用Runtime.getRuntime().exec()方法可以在java程序里运行外部程序.   
  该方法有6个可访问版本:   
  1.exec(String   command)   
  2.exec(String   command,   String   envp[],   File   dir)     
  3.exec(String   cmd,   String   envp[])   
  4.exec(String   cmdarray[])   
  5.exec(String   cmdarray[],   String   envp[])   
  6.exec(String   cmdarray[],   String   envp[],   File   dir)   
    
  一般的应用程序可以直接使用第一版本,当有环境变量传递的时候使用后面的版本.   
  其中2和6版本可以传递一个目录,标识当前目录,因为有些程序是使用相对目录的,所以就要使用这个版本.   
  当要执行批处理的时候,不能直接传递批处理的文件名,而要使用:   
  cmd.exe   /C   start   批处理文件名   
  使用dos命令(比如dir)时也要使用掉调用.   
    
  如果想与调用的程序进行交互,那么就要使用该方法的返回对象Process了,通过Process的getInputStream(),getOutputStream(),getErrorStream()方法可以得到输入输出流,然后通过InputStream可以得到程序对控制台的输出信息,通过OutputStream可以给程序输入指令,这样就达到了程序的交换功能.   

  例子如下:   

package   com.broadcontact.netadmin.schedule;     import   java.io.PrintWriter;     import   java.io.PrintStream;     import   java.io.IOException;     import   java.sql.SQLException;     import   java.util.Date;     import   java.io.StringReader;     import   java.io.BufferedReader;     import   java.io.InputStreamReader;     import   java.io.Reader;     import   java.io.File;     import   java.io.BufferedWriter;     import   java.io.OutputStreamWriter;     /**    *   <p>Title:   netadmin</p>    *   <p>Description:   </p>    *   <p>Copyright:   Copyright   (c)   2002</p>    *   <p>Company:   nm   group</p>    *   @author   Maico(Panghf)    *   @version   1.0    */     public   class   ExecuteTask   implements   Runnable   {     private   boolean   isRunning=true;     public   ExecuteTask()   {     }     public   void   run(){     }     public   static   void   main(String[]   args){     try   {     Process   proc=Runtime.getRuntime().exec("cmd.exe");     BufferedReader   read=new   BufferedReader(new   InputStreamReader(proc.getInputStream()));     new   Thread(new   Echo(read)).start();     PrintWriter   out=new   PrintWriter(new   OutputStreamWriter(proc.getOutputStream()));     BufferedReader   in=new   BufferedReader(new   InputStreamReader(System.in));     String   instr   =   in.readLine();     while(!"exit".equals(instr)){     instr   =   in.readLine();     out.println(instr);     file://out.println("telnet   192.168.0.1");     out.flush();     }     in.readLine();     read.close();     out.close();     }     catch   (IOException   ex)   {     ex.printStackTrace();     }     }     }     class   Echo   implements   Runnable   {     private   BufferedReader   read;     public   Echo(BufferedReader   read){     this.read   =   read;     }     public   void   run()   {     try   {     String   l   =   read.readLine();     while   (l   !=   null)   {     System.out.println(l);     l   =   read.readLine();     }     System.out.println("---执行完毕:");     }     catch   (IOException   ex)   {     ex.printStackTrace();     }     }     }  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/328427.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于SignalR的消息推送与二维码描登录实现

1 概要说明 使用微信扫描登录相信大家都不会陌生吧&#xff0c;二维码与手机结合产生了不同应用场景&#xff0c;基于二维码的应用更是比较广泛。为了满足ios、android客户端与web短信平台的结合&#xff0c;特开发了基于SinglarR消息推送机制的扫描登录。本系统涉及到以下知识…

Java调用exe阻塞

转载自 Java调用exe阻塞 今天遇到了个奇怪的问题&#xff0c;用VC写了个小程序&#xff0c;编译成exe文件&#xff0c;然后用Java去调&#xff0c;居然卡住不运行了。如果双击这个exe程序&#xff0c;单独让它运行&#xff0c;是可以的&#xff0c;那么为什么用Java调用就不好…

java中iscontinue意思_Java 中return、continue和break的区别

写在前面&#xff1a;适合Java初学者&#xff0c;大神就别来了。今天同事突然问我return和break的区别&#xff0c;以前觉得随口都能说出来的东西&#xff0c;今天突然卡了&#xff0c;记得模模糊糊&#xff0c;只能说出个大概&#xff0c;所以这里做一个总结&#xff0c;还是那…

第13步 用户模块前端(Admin)

bootstrap 就不用谢css样式 了 都写好了 http://www.bootcss.com/ https://www.bootcdn.cn/ <meta charset"utf-8"> <!-- 防止网站在手机端看变形了 --> <meta name"viewPort" content"widthdevice-width,initial…

ASP.NET Core 静态文件及JS包管理器(npm, Bower)的使用

在 ASP.NET Core 中添加静态文件 虽然ASP.NET主要大都做着后端的事情&#xff0c;但前端的一些静态文件也是很重要的。在ASP.NET Core中要启用静态文件&#xff0c;需要Microsoft.AspNetCore.StaticFiles组件。可以通过Nuget添加&#xff0c;或者在project.json配置文件中添加&…

Java 正则表达式匹配模式[贪婪型、勉强型、占有型]

转载自 Java 正则表达式匹配模式[贪婪型、勉强型、占有型]Greediness&#xff08;贪婪型&#xff09;&#xff1a;最大匹配 X?、X*、X、X{n&#xff0c;} 是最大匹配。例如你要用 “<.>” 去匹配 “a<tr>aava </tr>abb”&#xff0c;也许你所期待的结果是想…

新闻发布项目——分页公共类(PageUitl )

package bdqn.newsManageServlet.Util; /*** 分页的类* author Administrator**/ public class PageUitl {private int pagesize;//页大小private int pageindex1;//页码private int recordCount;//总记录数private int totalPageCount;//总页数//计算总页数public int getTota…

java代码配置 mybatis_配置简介(MyBatis源码篇)

1 SqlSessionFactoryBuilder#上篇例子中&#xff0c;我们以SqlSessionFactoryBuilder去创建SqlSessionFactory, 那么&#xff0c;我们就先从SqlSessionFactoryBuilder入手&#xff0c; 咱们先看看源码是怎么实现的。SqlSessionFactoryBuilder源码片段&#xff1a;public class …

js 方法传递对象参数

js 方法传递对象参数 2017年12月06日 16:35:39 qq_26676207 阅读数&#xff1a;7696 版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 https://blog.csdn.net/qq_26676207/article/details/78732117 第一步&#xff1a; //通过JSON.stringify()方…

Java8中 Date和LocalDateTime的相互转换

转载自 Java8中 Date和LocalDateTime的相互转换一.在Java 8中将Date转换为LocalDateTime 方法1: 将Date转换为LocalDatetime&#xff0c;我们可以使用以下方法&#xff1a; 1.从日期获取ZonedDateTime并使用其方法toLocalDateTime&#xff08;&#xff09;获取LocalDateTime 2…

java 时分秒格式小时8_Java里得到00:00:00格式的时分秒的Timestamp

复制代码 代码如下:import java.sql.Timestamp;import java.text.SimpleDateFormat;import java.util.TimeZone;public class Test {public static void main(String[] args) {SimpleDateFormat sdf new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");long t System.cu…

免费开源的 .NET 分布式组件库 Exceptionless Foundatio

前言 在互联网时代&#xff0c;分布式应用、系统变得越来越多&#xff0c;我们在使用 .Net 技术构建分布式系统的时候&#xff0c;需要使用到一些组件或者是助手库来帮助我们提高生产力以及应用程序解耦&#xff0c;但是纵观.Net圈&#xff0c;能够符合要求的这样的组件并不是很…

Java 8 中 Date与LocalDateTime、LocalDate、LocalTime互转

转载自 Java 8 中 Date与LocalDateTime、LocalDate、LocalTime互转Java 8中 java.util.Date 类新增了两个方法&#xff0c;分别是from(Instant instant)和toInstant()方法 // Obtains an instance of Date from an Instant object. public static Date from(Instant instant) …

mysql 删除过期日志_【转】对mysql日志进行操作的总结包括 启用,过期自动删除 等...

近段时间一直在研究mysql的日志系统,在网上看了N多mysql日志操作的文章&#xff0c;但都过于零乱&#xff0c;为了让自己以后不再搞忘&#xff0c;特作出以下总结&#xff1a;1. 以前我错误的认为mysql的日志可以恢复到任何时间的状态&#xff0c;其实并不是这样&#xff0c;这…

vo listVO paggerHelper mapper使用原则

注意 列表页面就显示这张表就好了 pageHelper 用2个mapper没有问题 xxxlistVO就好了详情哪里在展示多张表 不用分页你想链接几张表都可以 xxxVO 所有VO不要包含子对象注意一般vo对象中不可以包含对象&#xff01;&#xff01;&#xff01;&#xff01;&#xff…

Visual Studio 2015 for Linux更好地支持Linux下的开发

Visual C for Linux扩展使Visual Studio 2015的用户可以在VS2015中编写C或者C代码&#xff0c;并将代码部署到基于Linux的系统中去编译和调试。源代码和项目文件通过SSH传输到远程机上&#xff0c;程序的输出将显示在Visual Studio上。 Microsoft的Marc Goodner分享了更多有关新…

Google浏览器截长图 不需要借助任何插件!!!

1打开“谷歌浏览器”&#xff0c;右键单击网页空白处&#xff0c;然后点击“检查”。 2打开“开发者模式”&#xff0c;按“Ctrlshiftp”。 3.在输入框中输入“cpture”。 4.出现的三个模式分别为“截取全屏”、“node模式”和“当前范围”&#xff0c;选择想要的模式。 5.…

tomcat7.0.42如何设置mysql数据库连接池

转载自 tomcat7.0.42如何设置mysql数据库连接池 如何在tomcat7.0.42中设置mysql数据库连接池????eclipse如何绑定tomcat??按网上教程总不成功!怎么办server.xml<Resource name"jdbc/test" auth"Container" type"javax.sql.DataSource"…