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
  • 相关阅读:
    ORACLE不常用但实用的技巧- 树查询 level用法
    oracle的start with connect by prior如何使用
    Oracle SQL日期及日期格式获取命令
    2019年起一般纳税人和小规模纳税人的区别
    10.pandas的替换和部分替换(replace)
    pandas中.value_counts()的用法
    Python模块/包/库安装几种方法(转载)
    预处理数据的方法总结(使用sklearn-preprocessing)
    python时间序列分析之_用pandas中的rolling函数计算时间窗口数据
    BZOJ2007 [Noi2010]海拔
  • 原文地址:https://www.cnblogs.com/convict/p/13884138.html
Copyright © 2011-2022 走看看