zoukankan      html  css  js  c++  java
  • Java执行cmd命令、bat脚本、linux命令,shell脚本等

    1.Windows下执行cmd命令

    如复制 D: mpmy.txt 到D: mpmy_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:	mpmy.txt D:	mpmy_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);
        }
    
    }
    View Code
  • 相关阅读:
    按钮一色三变化
    最小的k个数-Python版
    字符串的全排列-终于弄明白了
    键值offer-求逆序对
    Python小技巧
    面试题48-动态规划-最长不含重复字符的子字符串,剪绳子
    面试题47-礼物的最大价值(Python版)
    多元高斯分布
    torch_13_ProGan笔记
    pytorch-模型保存与加载自己训练的模型详解 
  • 原文地址:https://www.cnblogs.com/convict/p/13884138.html
Copyright © 2011-2022 走看看