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();
}

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

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

相关文章

  • Sprint Boot @Profile使用方法详解

    Spring Boot的@Profile注解 在Spring Boot中,@Profile注解用于指定在不同的环境中使用不同的配置。通过使用@Profile注解,可以轻松地在不同的环境中切换配置,例如开发环境、测试环境和生产环境。 @Profile注解的使用方法 以下是@Profile注解的使用方法: 在配置类或配置方法上添加@Profile注解,并指定环境…

    Java 2023年5月5日
    00
  • servlet实现文件上传与下载功能

    实现文件上传和下载功能是Web开发中比较常见的需求,其中使用Servlet技术是一种比较常用的方式。下面我将从Servlet的角度详细讲解如何实现文件上传和下载功能。 文件上传 1. 创建 HTML 表单 我们需要在 HTML 表单中添加 <input> 标签,然后设置 type 属性为 file,即可实现文件上传功能。 <form act…

    Java 2023年6月15日
    00
  • Spring Cloud 中@FeignClient注解中的contextId属性详解

    当我们使用Spring Cloud中的FeignClient进行服务间调用时,我们可以在@FeignClient注解中,定义contextId属性,用于指定当前FeignClient的contextId,以便区分不同的FeignClient实例。 具体来说,contextId属性的作用有如下两个: 当我们使用了相同FeignClient接口的多个实例时,使用…

    Java 2023年5月31日
    00
  • 一名优秀的程序员是这样炼成的

    一名优秀的程序员是这样炼成的 成为一名优秀的程序员,并不容易,需要进行长期的努力和学习。以下是成为一名优秀的程序员的攻略: 1. 基础扎实 基础扎实是成为一名优秀程序员的必要条件,包括但不限于以下方面: 编程语言基础:熟练掌握至少一门主流编程语言,包括其语法、数据类型、变量、运算符、流程控制等基础知识。 数据结构和算法:熟悉常见的数据结构和算法,掌握它们的时…

    Java 2023年5月26日
    00
  • SpringBoot与Spring之间的对比

    关于“SpringBoot与Spring之间的对比”的话题进行完整攻略,可以从以下几个方面进行讲解。 1. Spring和SpringBoot的定义和特点 首先,我们需要了解Spring和SpringBoot的定义和特点。 Spring是一个经典的开源Java框架,它主要应用于企业级应用的开发,提供了一系列的解决方案以适应复杂的应用需求,如IoC容器、AOP…

    Java 2023年5月15日
    00
  • ajax 异步上传带进度条视频并提取缩略图

    针对上传带进度条视频并提取缩略图的需求,可以通过以下步骤来实现: 1. 前端页面准备 首先,我们需要在前端页面中添加一个用于上传视频文件的表单,这个表单需要设置 enctype=”multipart/form-data” 属性以支持文件上传。此外,还需要添加一个用于显示上传进度的进度条,通过实时更新进度条的值来展示上传进度。 以下是一个简单的示例: <…

    Java 2023年5月20日
    00
  • 常见的Java加密算法有哪些?

    常见的Java加密算法有以下几种:对称加密算法、非对称加密算法和散列算法。 对称加密算法 对称加密算法是指发送方和接收方使用相同的密钥对数据进行加密和解密。常见的对称加密算法有DES、3DES、AES、Blowfish等。 以AES算法为例,以下为使用步骤: 1)生成密钥 SecretKey secretKey = KeyGenerator.getInsta…

    Java 2023年5月11日
    00
  • Java的Lambda表达式和Stream流的作用以及示例

    现在就为你讲解Java的Lambda表达式和Stream流的作用。 Lambda表达式的作用 Lambda表达式是Java 8引入的新特性,它可以简化代码冗长的写法,同时也可以将函数作为参数传递进去。常见的用法包括在集合中对元素进行过滤、映射、排序等操作,从而避免了繁琐的循环语句。 Lambda表达式的语法可以简单概括为: (parameter1, para…

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