1.Windows下执行cmd命令

如复制 D:\tmp\my.txt 到D:\tmp\my_by_only_cmd.txt

现文件如图示:

执行代码:

    private static void runWinCmd() throws IOException, InterruptedException {
Process proc = Runtime.getRuntime().exec("cmd.exe /c copy D:\\tmp\\my.txt D:\\tmp\\my_by_only_cmd.txt");
int processCode = proc.waitFor();
System.out.println("Process code: " + processCode);
}

结果如图示,执行成功

2.Windows下执行bat脚本

删除多余文件,新建mytest.bat,内容如下

copy D:\tmp\my.txt D:\tmp\my_by_bat.txt
exit

现文件如图示:

执行代码:

    private static void runWinBat() throws IOException, InterruptedException {
Process proc = Runtime.getRuntime().exec("cmd.exe /c start D:\\tmp\\mytest.bat");
int processCode = proc.waitFor();
System.out.println("Process code: " + processCode);
}

结果如图示,执行成功

3.Linux下执行命令

如复制 /opt/tmp/my.txt 到 /opt/tmp/my_by_copy.txt

现文件如图示:

执行代码:

    private static void runLinuxCommand() throws IOException, InterruptedException {
Process proc = Runtime.getRuntime().exec("sudo cp /opt/tmp/my.txt /opt/tmp/my_by_copy.txt");
int processCode = proc.waitFor();
System.out.println("Process code: " + processCode);
}

结果如图示,执行成功

4.Linux下执行shell脚本

删除多余文件,新建mytest.sh,内容如下

sudo cp /opt/tmp/my.txt /opt/tmp/my_by_sh.txt

现文件如图示:

执行代码:

    private static void runLinuxShell() throws IOException, InterruptedException {
Process proc = Runtime.getRuntime().exec("bash /opt/tmp/mytest.sh");
int processCode = proc.waitFor();
System.out.println("Process code: " + processCode);
}

结果如图示,执行成功

Tip:Java的Process对象的waitFor()方法返回值等于0时,说明子进程正常完成退出,如不等于0,则有相应的异常解释,可参考 此处

完整代码如下:

package com.runtime;

import java.io.IOException;

/**
* @author: Convict.Yellow
* @date: 2020/10/27 10:28
* @description: TestProcess
*/
public class TestProcess {
public static void main(String[] args) throws IOException, InterruptedException {
runWinCmd();
runWinBat();
runLinuxCommand();
runLinuxShell();
} private static void runWinCmd() throws IOException, InterruptedException {
Process proc = Runtime.getRuntime().exec("cmd.exe /c copy D:\\tmp\\my.txt D:\\tmp\\my_by_only_cmd.txt");
int processCode = proc.waitFor();
System.out.println("Process code: " + processCode);
} private static void runWinBat() throws IOException, InterruptedException {
Process proc = Runtime.getRuntime().exec("cmd.exe /c start D:\\tmp\\mytest.bat");
int processCode = proc.waitFor();
System.out.println("Process code: " + processCode);
} private static void runLinuxCommand() throws IOException, InterruptedException {
Process proc = Runtime.getRuntime().exec("sudo cp /opt/tmp/my.txt /opt/tmp/my_by_copy.txt");
int processCode = proc.waitFor();
System.out.println("Process code: " + processCode);
} private static void runLinuxShell() throws IOException, InterruptedException {
Process proc = Runtime.getRuntime().exec("bash /opt/tmp/mytest.sh");
int processCode = proc.waitFor();
System.out.println("Process code: " + processCode);
} }

Java执行cmd命令、bat脚本、linux命令,shell脚本等的更多相关文章

  1. java执行cmd命令并获取输出结果

    1.java执行cmd命令并获取输出结果 import java.io.BufferedReader; import java.io.InputStreamReader; import org.apa ...

  2. Java开发人员必须掌握的Linux命令-学以致用(5)

    ================================================= 人工智能教程.零基础!通俗易懂!风趣幽默!大家可以看看是否对自己有帮助! 点击查看高清无码教程 == ...

  3. win7 cmd终端连接android手机运行adb shell脚本命令

    win7 cmd终端连接android手机运行adb shell脚本命令 (2013-03-22 20:13:57) 转载▼ 标签: android it shell 连接 linux 分类: 嵌入式 ...

  4. Java开发需掌握的常用Linux命令(持续更新)

    linux命令是对Linux系统进行管理的命令.对于Linux系统来说,无论是中央处理器.内存.磁盘驱动器.键盘.鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命 ...

  5. Java开发人员必须掌握的Linux命令(三)

    做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 学习应该是快乐的,在这个乐园中我努力让自己能用简洁易懂(搞笑有趣)的表达来讲解知识或者技术,让学习之旅充满乐趣,这就是写博 ...

  6. Java开发人员必须掌握的Linux命令(二)

    子曰:"工欲善其事,必先利其器." 学习应该是快乐的,在这个乐园中我努力让自己能用简洁易懂(搞笑有趣)的表达来讲解让知识或者技术,让学习之旅充满乐趣,这就是写博文的初心. 本篇的旅 ...

  7. shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量

    7月11日任务 20.1 shell脚本介绍20.2 shell脚本结构和执行20.3 date命令用法20.4 shell脚本中的变量 20.1 shell脚本介绍 1.shell脚本语言是linu ...

  8. Windows使用Java执行cmd代码

    话不多说,直入正题 今天给大家分享下,怎么在Windows上使用Java执行Cmd代码! 首先默认大家都熟悉cmd代码,以及cmd的命令行操作. 直接在main方法中写这一行(需要抛出异常),可以直接 ...

  9. 使用C#给Linux写Shell脚本(下篇)

    在上篇的<使用C#给Linux写Shell脚本>结尾中,我们留下了一个关于C#如何调用BashShell的问题.在文章发布之后,我留意到有读者留言推荐使用“Pash”(一款类PowerSh ...

  10. Linux 【Shell脚本经典案例】

    Shell 简介 hell是linux的一外壳,它包在linux内核的外面,为用户和内核之间的交互提供了一个接口 当用户下达指令给操作系统的时候,实际上是把指令告诉shell,经过shell解释,处理 ...

随机推荐

  1. redis 加锁与解锁的详细总结,解决线程并发导致脏数据

    1.前言 对每个controller来说都是全新且单独的,原因是多线程,如果多个请求操作共有的数据,这样的并发操作会导致脏数据 怎么解决? mysql可以使用积极锁解决, 这里讲解的是redis的解决 ...

  2. 第10组 Beta冲刺 (5/5)(组长)

    1.1基本情况 ·队名:今晚不睡觉 ·组长博客:https://www.cnblogs.com/cpandbb/p/14018671.html ·作业博客:https://edu.cnblogs.co ...

  3. nuxt中报window is not defined

    1.如果是引用插件报错的话,原因是在服务端渲染时找不到window,这样在插件引入位置把ssr设置为false即可. plugins: [ { src: '@/plugins/iview', ssr: ...

  4. rockchip-rk3399 RGA的使用

    RGA的使用 RGA即二维图像辅助计算单元,该单元可以在极短时间内拷贝.旋转.格式转换.缩放.混合图片. rk官方RGA库链接:https://github.com/rockchip-linux/li ...

  5. 机器学习&恶意代码静态检测

    目录 分析工具 方法概述 二进制灰度图 字节(熵)直方图 字符串信息 ELF结构信息 源码分析与OPcode FCG references: 分析工具 readelf elfparser ninja ...

  6. 【Java】Java8新特性

    文章目录 Java8新特性 Lambda表达式的使用 语法格式一:无参,无返回值 语法格式二:Lambda 需要一个参数,但是没有返回值. 语法格式三:数据类型可以省略,因为可由编译器推断得出,称为& ...

  7. 【get√】golang新手理解了一点点gin框架的中间件

    1.通过use()来使用多个中间件 router := gin.New() router.Use( middleware1, middleware2) 2.中间件的典型实现 func Logger() ...

  8. docker内存限制

    默认docker容器可以使用宿主机所有的内存和CPU,我们可以通过 docker run 来限制内存和CPU的使用. 有的系统内核不支持 Linux capabilities. 可以通过 docker ...

  9. 人口信息普查系统-JavaWeb-五

    今天分享人口普查系统删除查询前端代码 <%@ page language="java" contentType="text/html; UTF-8" pa ...

  10. java解洛谷P1003铺地毯问题

    此题给出的最大地毯数量为10000,创建[10001][4]长度的二维数组 以稀松数组的方法,[第i个地毯]的 [0][1][2][3]分别保存地毯的坐标和大小 再用需要求的坐标比较即可 public ...