java 启动exe程序,传递参数和获取参数操作

为在Java中启动.exe程序并传递参数,有以下几个步骤:

  1. 使用Runtime.getRuntime()获取运行时对象。
  2. 使用运行时对象的exec()方法执行需要启动的.exe程序,并获得其进程对象Process。
  3. 调用进程对象Process的getOutputStream()getInputStream()方法获取标准输出流和输入流。
  4. 使用标准输出流向.exe程序输入参数。
  5. 读取.exe程序打印在标准输出流中的结果,即标准输入流。

示例1:启动一个.exe程序并传递参数

String exePath = "C:\\path\\to\\program.exe";
String arg1 = "arg1";
String arg2 = "arg2";

try {
    // 获取运行时对象
    Runtime runtime = Runtime.getRuntime();
    // 执行.exe程序并获得其进程对象
    Process proc = runtime.exec(exePath + " " + arg1 + " " + arg2);
    // 获取标准输入流和输出流
    BufferedReader input = new BufferedReader(new InputStreamReader(proc.getInputStream()));
    BufferedWriter output = new BufferedWriter(new OutputStreamWriter(proc.getOutputStream()));

    // 向标准输出流输入参数
    output.write("input_str \n");
    output.flush();

    // 读取标准输入流,即.exe程序的输出结果
    String line;
    while ((line = input.readLine()) != null) {
        System.out.println(line);
    }
} catch (IOException e) {
    e.printStackTrace();
}

示例2:启动一个.exe程序并传递参数,然后根据返回结果做出不同的处理操作

String exePath = "C:\\path\\to\\program.exe";
String arg1 = "arg1";
String arg2 = "arg2";

try {
    // 获取运行时对象
    Runtime runtime = Runtime.getRuntime();
    // 执行.exe程序并获得其进程对象
    Process proc = runtime.exec(exePath + " " + arg1 + " " + arg2);
    // 获取标准输入流和输出流
    BufferedReader input = new BufferedReader(new InputStreamReader(proc.getInputStream()));
    BufferedWriter output = new BufferedWriter(new OutputStreamWriter(proc.getOutputStream()));

    // 向标准输出流输入参数
    output.write("input_str \n");
    output.flush();

    // 读取标准输入流,即.exe程序的输出结果
    String line;
    while ((line = input.readLine()) != null) {
        // 根据返回结果进行不同的处理
        if (line.equals("success")) {
            // do something
        } else if (line.equals("failure")) {
            // do something else
        } else {
            // do another thing
        }
    }
} catch (IOException e) {
    e.printStackTrace();
}
阅读剩余 34%

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java 启动exe程序,传递参数和获取参数操作 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • 微信小程序实现电子签名并导出图片

    下面我将详细讲解如何实现微信小程序实现电子签名并导出图片的完整攻略。 前置知识 在开始之前,需要了解一些前置知识: HTML5 canvas CanvasRenderingContext2D 微信小程序 file API 实现步骤 步骤一:创建 canvas 元素 在小程序的 WXML 文件中,创建一个 canvas 元素: <canvas id=&q…

    Java 2023年5月23日
    00
  • Java实现用Mysql存取图片操作实例

    针对Java实现用Mysql存取图片操作实例的攻略,我可以给出以下完整的步骤: 准备工作 首先,在Java项目中引入Mysql驱动程序依赖,可以使用Maven或手动导入jar包完成。另外,需要在Mysql数据库中创建专门存放图片的表和字段,用来存储图片信息以及二进制图片数据。 图片上传操作 在前端页面中,定义一个上传图片的表单,并设置合适的属性以方便后续操作…

    Java 2023年5月20日
    00
  • spring-spring容器中bean知识点总结

    Spring 容器中 Bean 知识点总结 Spring 是一个开源的框架,它解决了企业级应用中复杂性规模的问题。其中最常用的就是 Spring 容器中的 Bean,本文将详细讲解 Spring 容器中 Bean 的知识点总结。 什么是 Spring 容器? Spring 容器是一个管理 Bean 的运行环境,它负责创建 Bean 对象、配置 Bean 属性…

    Java 2023年6月15日
    00
  • ajax+json+Struts2实现list传递实例讲解

    这里是通过使用Ajax技术结合JSON和Struts2框架实现列表数据传递的攻略。以下是实现步骤: 第一步:创建Action类 首先,我们需要创建一个名为“ListAction”的Action类。该Action类将负责从数据库中获取列表数据并把它们封装为一个List对象,最后再将这个List对象转换为JSON格式返回给前端页面。 以下是一个简单示例: pub…

    Java 2023年5月20日
    00
  • 使用Mybatis如何实现多个控制条件查询

    使用 Mybatis 实现多个控制条件查询需要做以下几步: 定义 Mapper 接口方法并在 SQL 语句中使用 Mybatis 动态 SQL。 Mybatis 提供了 if 、where、choose、when、otherwise等标签来实现动态 SQL,通过这些标签可以方便地拼接sql语句来实现多个控制条件的查询。 例如,有一个需求是根据用户输入的查询条…

    Java 2023年5月20日
    00
  • mysql+spring+mybatis实现数据库读写分离的代码配置

    MySQL数据库读写分离是提高Web应用性能和可用性的重要手段之一。开发人员可以通过使用JDBC、Spring和MyBatis等技术实现MySQL数据库读写分离。 以下是实现数据库读写分离的完整攻略: 1. 安装和配置MySQL主从服务器 确保安装和配置了MySQL主从服务器,并确保主服务器和从服务器之间已正确配置了“主从同步”。可以考虑使用软件程序如MyS…

    Java 2023年6月1日
    00
  • day01-项目介绍与环境搭建

    项目介绍与环境搭建 1.项目学习前置知识 Java基础知识 javaweb MySQL SpringBoot SSM(Spring,SpringMVC,MyBatis) Maven 2.学习收获 了解企业项目开发的完整流程,增长开发经验 了解需求分析的过程,提高分析和设计能力 对所学的技术进行灵活应用,提高编码能力 解决各种异常情况,提高代码调试能力 3.软…

    Java 2023年4月17日
    00
  • Spring Security 密码验证动态加盐的验证处理方法

    针对“Spring Security 密码验证动态加盐的验证处理方法”的完整攻略,我将分为以下几个部分进行讲解: 加盐的原理及作用 Spring Security 密码验证流程 实现动态加盐的验证处理方法 示例代码和测试 1. 加盐的原理及作用 在密码存储中,加盐是一种常用的安全策略,其原理是在密码明文前后添加一段随机的字符串(即盐),然后对整个字符串进行哈…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部