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这个方法。。。。。。。
- 如何用Wireshark捕获USB数据?
- QEMU 2: 参数解析
- [WCF安全系列]认证与凭证:X.509证书
- 深度学习:能击败欧洲围棋冠军,还能防恶意软件
- Metasploit中的JAVA反向TCP做法的研究
- 商业级别Fortify白盒神器介绍与使用分析
- [WCF安全系列]消息的保护等级[上篇]
- QEMU 1: 使用QEMU创建虚拟机
- [WCF安全系列]绑定、安全模式与客户端凭证类型:NetNamedPipeBinding、NetTcpBinding与NetMsmqBinding
- 操作系统级虚拟化概述
- 让javascript中的异步请求同步起来
- [WCF REST] WebHttpBinding与消息编码
- React 概要
- [WCF REST] UriTemplate、UriTemplateTable与WebHttpDispatchOperationSelector
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释