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
  • 相关阅读:
    《笨办法学python》 第14课手记
    《笨办法学Python》 第13课手记
    杭电2009----求数列的和
    杭电2008----数值统计
    杭电2007----平方和与立方和
    杭电2006----求奇数的乘积
    杭电2005----第几天?
    杭电2004---- 成绩转换
    杭电2003----求绝对值
    杭电2002----计算球体积
  • 原文地址:https://www.cnblogs.com/convict/p/13884138.html
Copyright © 2011-2022 走看看