iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java怎么执行cmd命令及要注意哪些事项
  • 303
分享到

Java怎么执行cmd命令及要注意哪些事项

2023-06-29 04:06:00 303人浏览 薄情痞子
摘要

这篇文章主要介绍了Java怎么执行cmd命令及要注意哪些事项的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java怎么执行cmd命令及要注意哪些事项文章都会有所收获,下面我们一起来看看吧。通常 Java 执行

这篇文章主要介绍了Java怎么执行cmd命令及要注意哪些事项的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java怎么执行cmd命令及要注意哪些事项文章都会有所收获,下面我们一起来看看吧。

通常 Java 执行 windows 或者 linux 的命令时,都是使用 Runtime.getRuntime.exec(command) 来执行的

eg1: 执行命令

public static void execCommand() {    try {        Runtime runtime = Runtime.getRuntime();        // 打开任务管理器,exec方法调用后返回 Process 进程对象        Process process = runtime.exec("cmd.exe /c taskmgr");        // 等待进程对象执行完成,并返回“退出值”,0 为正常,其他为异常        int exitValue = process.waitFor();        System.out.println("exitValue: " + exitValue);        // 销毁process对象        process.destroy();    } catch (ioException | InterruptedException e) {        e.printStackTrace();    }}

eg2: 执行命令,并获取正常输出与错误输出

public static void execCommandAndGetOutput() {    try {        Runtime runtime = Runtime.getRuntime();        Process process = runtime.exec("cmd.exe /c ipconfig");        // 输出结果,必须写在 waitFor 之前        String outStr = getStreamStr(process.getInputStream());        // 错误结果,必须写在 waitFor 之前        String errStr = getStreamStr(process.getErrorStream());        int exitValue = process.waitFor(); // 退出值 0 为正常,其他为异常        System.out.println("exitValue: " + exitValue);        System.out.println("outStr: " + outStr);        System.out.println("errStr: " + errStr);        process.destroy();    } catch (IOException | InterruptedException e) {        e.printStackTrace();    }}public static String getStreamStr(InputStream is) throws IOException {    BufferedReader br = new BufferedReader(new InputStreamReader(is, "GBK"));    StringBuilder sb = new StringBuilder();    String line;    while ((line = br.readLine()) != null) {        sb.append(line);        sb.append("\n");    }    br.close();    return sb.toString();}

process对象可以通过操作数据流,对执行的命令进行参数输入、获取命令输出结果、获取错误结果

getInputStream()获取process进程的输出数据
getOutputStream()获取process进程的输入数据
getErrorStream()获取process进程的错误数据

值得注意的是:

getInputStream() 为什么是获取输出数据?getOutputStream()为什么是获取输入数据?这是因为 input 和 output 是__针对当前调用 process 的程序而言的__,即

要获取命令的输出结果,就是被执行命令的结果 输入到我们自己写的程序中,所以用getInputStream()

要往别的程序输入数据,就是我们程序要输出,所以此时用getOutputStream()

附java调用cmd命令实现各种操作

在java编程中,有时候我们只需要使用自己的程序或者调用第三方插件就可以完成一些工作,但是因为个人突发奇想,虽然cmd命令玩的不是很差,但是是否可以直接将命令写到java程序中,在自己的程序中进行对电脑内部的一个控制呢?举个例子可能更方便理解,因为晚上要下载资源文件,但是我又想睡觉,那么电脑一直开着不仅仅对电脑有损耗,而且可能影响我的睡眠质量,虽然我知道cmd的设置关机命令,但是我可以写一个java可执行片段,然后用这个来进行对电脑的定时关机操作,这样以后我如果需要设置关机就可以直接调用自己的程序了,虽然市面上有专门的小工具,但是自己写的东西总会带来一点小傲娇。具体的操作希望大家自行研究,但是要知道cmd命令可以做很多的事情,所以如何合理的在java中使用cmd命令是很有趣的:

public static void main(String[] args) {  try {    Process pro = Runtime.getRuntime().exec("cmd /c calc"); //添加要进行的命令,"cmd  /c calc"中calc代表要执行打开计算器,如何设置关机请自己查找cmd命令    BufferedReader br = new BufferedReader(new InputStreamReader(pro      .getInputStream())); //虽然cmd命令可以直接输出,但是通过IO流技术可以保证对数据进行一个缓冲。    String msg = null;    while ((msg = br.readLine()) != null) {     System.out.println(msg);    }   } catch (IOException exception) {   }   }

在这里要提醒大家的是,cmd命令融合到程序中有时候往往是有些实际用途的,比如我的项目中要求一旦用户做了某种操作就需要关机,那么这就是一种简单的使用。

关于“Java怎么执行cmd命令及要注意哪些事项”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Java怎么执行cmd命令及要注意哪些事项”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: Java怎么执行cmd命令及要注意哪些事项

本文链接: https://www.lsjlt.com/news/322526.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java怎么执行cmd命令及要注意哪些事项
    这篇文章主要介绍了Java怎么执行cmd命令及要注意哪些事项的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java怎么执行cmd命令及要注意哪些事项文章都会有所收获,下面我们一起来看看吧。通常 Java 执行 ...
    99+
    2023-06-29
  • Java执行cmd命令的举例与注意事项
    目录eg1: 执行命令eg2: 执行命令,并获取正常输出与错误输出值得注意的是:附java调用cmd命令实现各种操作总结通常 Java 执行 Windows 或者 Linux 的命令...
    99+
    2024-04-02
  • linux curl命令使用要注意哪些事项
    在使用Linux的curl命令时,需要注意以下几个事项:1. 语法:curl命令的基本语法是curl [options] [URL]...
    99+
    2023-10-18
    linux
  • linux中使用grep命令要注意哪些事项
    在使用grep命令时,需要注意以下几个事项:1. 区分大小写:默认情况下,grep是区分大小写的。如果需要进行大小写不敏感的搜索,可...
    99+
    2023-09-14
    linux grep
  • c++换行要注意哪些事项
    在C++中换行时,需要注意以下几点: 使用"\n"字符来表示换行,即在字符串中使用"\n"...
    99+
    2024-04-02
  • pgsql行转列要注意哪些事项
    在将行转列时,需要注意以下事项: 确保数据的唯一性:在进行行转列操作之前,需要确保每行数据都可以通过某一列的值进行唯一标识,否则...
    99+
    2024-04-02
  • java加锁时要注意哪些事项
    在Java中,当我们使用锁来保护共享资源时,我们需要注意以下几个事项: 1.选择合适的锁类型:Java提供了多种锁类型,如synch...
    99+
    2023-10-24
    java
  • oracle行列转换要注意哪些事项
    在进行Oracle行列转换时,需要注意以下事项: 确保数据类型匹配:在进行行列转换时,要确保源表和目标表的数据类型能够正确匹配,...
    99+
    2024-04-08
    oracle
  • SSH远程执行命令需要注意什么
    小编给大家分享一下SSH远程执行命令需要注意什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!相信大家在工作的时侯,可能会遇到要利用 ssh 在本地执行远程机器的...
    99+
    2023-06-09
  • java参数传值要注意哪些事项
    在Java中,参数传值是通过将参数的副本传递给方法来实现的。在传递参数时,需要注意以下几点: 基本类型(例如int、float、b...
    99+
    2024-02-29
    java
  • java文件打开要注意哪些事项
    要注意以下事项来打开Java文件:1. 确认你有正确的Java开发环境配置。你需要安装JDK(Java Development Ki...
    99+
    2023-08-29
    java
  • Java分页查询要注意哪些事项
    在Java分页查询时,需要注意以下事项:1. 设置每页显示的数据量:在进行分页查询时,需要设置每页显示的数据量,以控制查询结果的数量...
    99+
    2023-09-15
    Java
  • java调用接口要注意哪些事项
    在Java中调用接口时需要注意以下几个事项:1. 接口不能直接实例化,只能通过实现接口的类来创建对象。因此,需要先创建一个实现了该接...
    99+
    2023-10-09
    java
  • java中float赋值要注意哪些事项
    在Java中,给float类型变量赋值时要注意以下事项: 在赋值时,需要在数字后面加上"F"或"f"后缀,以表示这是一个floa...
    99+
    2023-10-25
    java
  • java调用成员要注意哪些事项
    在Java中调用成员时,需要注意以下几个事项:1. 访问修饰符:成员的访问修饰符决定了它的可见范围。如果成员是private修饰的,...
    99+
    2023-09-15
    java
  • Linux中重命名文件要注意哪些事项
    在Linux中重命名文件时,需要注意以下几点事项:1. 文件路径和文件名:确保提供正确的文件路径和文件名。如果文件在当前目录,只需提...
    99+
    2023-09-15
    Linux
  • java调用打印机要注意哪些事项
    在Java中调用打印机时,需要注意以下几点:1. 打印机驱动程序:确保安装了正确的打印机驱动程序,并确保驱动程序与操作系统兼容。2....
    99+
    2023-09-01
    java
  • java字符串比较要注意哪些事项
    在Java中,字符串比较需要注意以下几个事项:1. 使用equals()方法进行比较:在Java中,字符串是对象,使用equals(...
    99+
    2023-09-05
    java
  • Java中使用image类要注意哪些事项
    在Java中使用Image类时,需要注意以下几点事项: 图片文件的路径:确保图片文件的路径是正确的,并且能够被程序正确地访问到。...
    99+
    2024-03-07
    Java
  • java数组初始化要注意哪些事项
    在进行Java数组初始化时,需要注意以下几点事项:1. 数组的大小:在初始化数组时,需要指定数组的大小,即数组可以存储的元素的个数。...
    99+
    2023-09-09
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作