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这个方法。。。。。。。
- 2015: [Usaco2010 Feb]Chocolate Giving
- 2060: [Usaco2010 Nov]Visiting Cows 拜访奶牛
- 2020: [Usaco2010 Jan]Buying Feed, II
- 2102: [Usaco2010 Dec]The Trough Game
- 洛谷P3707 [SDOI2017]相关分析(线段树)
- Java计数器之CountDownLatch、CyclicBarrier、Semaphore
- 再看最短路算法 1 —— 单源最短路
- 3402: [Usaco2009 Open]Hide and Seek 捉迷藏
- 1084: [SCOI2005]最大子矩阵
- 关于一般的并查集求根操作的一组对照研究
- vue计算属性详解——小白速会
- 【技巧】Java工程中的Debug信息分级输出接口及部署模式
- 1934: [Shoi2007]Vote 善意的投票
- 算法模板——线段树8 (字符串回文变换)
- 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 文档注释
- GoldenEye靶机渗透
- RBash - 受限的Bash绕过
- 【Rust日报】2020-08-10:在 Rust 中存储连续数据
- 用 Docker 打包 Node.js 程序
- 再见! JSP !
- SocketFTP多线程处理
- 面经手册 · 第4篇《HashMap数据插入、查找、删除、遍历,源码分析》
- Xray配合awvs漏洞扫描
- 无聊的MISC题解
- MISC-convert | 旋转跳跃
- MISC-多彩
- Web-高明的黑客
- CVE-2017-7529 Nginx整数溢出漏洞分析
- 【Vulnhub】pegasus
- 2019-11-20-app专项测试【Android电量】Battery Historian耗电分析