Java命令执行学习笔记

时间:2022-07-22
本文章向大家介绍Java命令执行学习笔记,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

大家都知道java命令执行执行是,Runtime.getRuntime().exec("whoami")

但是具体为啥这么写,我之前一直处于很蒙蔽的状态,接下来本文就是分析为啥命令执行要这么写。【为啥蛤蟆的这么长】

1、首先我们来看一段代码,执行后弹计算器,计算器被吃掉了。。。。

```

public static void main(String[] args) throws Exception
{
 Runtime.getRuntime().exec("calc");

```

2、Runtime.getRuntime().exec("calc"),仔细一看,这段是调用了Runtime中的getRuntime方法,在调用exec方法????

从idea中看exec方法不是本来就在Runtime类中嘛

3、搞事情,直接调用

    public static void main(String[] args) throws Exception
    {
        Runtime run = new Runtime();
        run.exec("calc");
    }

哦豁报错了

原来是这个Runtime的构造方法私有化了。。。。。。

所以不能直接去new出来这个对象。。。。

在接着看getRuntime方法,顿时理解了。。。。

因为私有化了,这个Runtime对象不能直接new出来,因此不能直接调用下面的exec方法。。。。【意思就是我虽然有嫩模,但是我就是不给你,你要经过我的getRuntime方法才能new一个对象,想白嫖可不行。。。】

```

class Runtime{

    private static Runtime currentRuntime = new Runtime();
    public static Runtime getRuntime() {
        return currentRuntime;
    }
}

```

看完上面这个 你就知道整个命令执行过程了,,

Runtime.getRuntime().exec("calc")

Runtime执行getRuntime这个方法,才能new出Runtime这个对象,在去执行calc这个方法。。。。。。。