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. Swoole 中使用通道(Channel)实现协程间通讯(消息队列)

    通道 Coroutine\Channel 使用本地内存,不同的进程之间内存是隔离的. 只能在同一进程的不同协程内进行 push 和 pop 操作. Co::set(['hook_flags'=> ...

  2. SpringBoot 原理分析、监控、项目部署

    目录 SpringBoot 监控 概述 使用 SpringBoot Admin 概述 使用 SpringBoot 项目部署 SpringBoot 监控 概述 SpringBoot 自带监控功能 Act ...

  3. Python 利用@property装饰器和property()方法将一个方法变成属性调用

    在创建实例属性时,如果直接把实例属性暴露出去,虽然写起来简单,但是存在一些风险,比如实例属性可以在外部被修改. 为了限制外部操作,可以通过一个set_score()方法来设置成绩,再通过一个get_s ...

  4. 如何更改Docker已经挂载的目录

    更改docker已经挂载的目录,主要有两种方式:一是重新创建容器,二是更改配置文件.第一种方式较为简单,下面具体演示第二种方式,通过更改配置文件来更换目录 挂载. 安装docker yum -y in ...

  5. Solon 开发,二、注入或手动获取Bean

    Solon 开发 一.注入或手动获取配置 二.注入或手动获取Bean 三.构建一个Bean的三种方式 四.Bean 扫描的三种方式 五.切面与环绕拦截 六.提取Bean的函数进行定制开发 七.自定义注 ...

  6. 【reverse】逆向3 寻找地址

    [reverse]逆向3 寻找地址 寻址公式一:[立即数] 读取内存的值: mov eax,dword prt ds:[0x13FFC4] 将内存编号为0x13FFC4.0x13FFC5.0x13FF ...

  7. [USB波形分析] 全速USB波形数据分析(一)

    在之前的文章一次CAN波形分析之旅里,根据示波器采集的波形数据,详细地分析了CAN通信.今天来分析USB数据,还是同样的流程,但是这次使用matplotlib来协助分析. USB基本波形 USB通过一 ...

  8. 【记录一个问题】golangci-lint.exe中,盘符大写就会执行出错

    golangci-lint.exe版本为1.31.0 执行:golangci-lint.exe run d:\source\github.com\ahfuzhang\go_xxx_server\src ...

  9. 【小记录】利用cuvid库做视频解码,运行出现"dlopen "libnvcuvid.so" failed!"

    1.查看源码:/Video_Codec_SDK_8.0.14/Samples/common/src/dynlink_nvcuvid.cpp 其中的LOAD_LIBRARY函数的源码如下: 1 #eli ...

  10. Cesium中级教程4 - 空间数据可视化(二)

    Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ Viewer中的Entity功能 让我们看看Viewer为操作e ...