今天试着写了个java版的cmd,其实核心代码就是用RunTime类的exec()方法,不过觉得目录转换的模拟还是很有趣,“cd..”命令我还没写好.
代码如下:
JavaCmd.java
package com.cmd;
import java.io.*;
/**
* 模拟cmd的类
* @author lupin
* @version 1.0 2009-12-25
*/
public class JavaCmd {
public static Process execCmd(String command){ //执行cmd命令的方法
JavaCmd.changDir(command);
Runtime run = Runtime.getRuntime();
Process pro =null;
try {
pro = run.exec("cmd /c" + command,null,new File(System.getProperty("user.dir")));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return pro;
}
public static void showResult(Process pro){ //回显命令执行结果的方法
InputStream is = pro.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String s = null;
try {
s = br.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
while(s != null){
System.out.println(s);
try {
s = br.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void showWindow(){ //显示cmd窗口
System.out.println("Microsoft Windows XP [版本 5.1.2600]");
System.out.println("<c> 版权所有 1985-2001 Microsoft Corp.");
String strHome = System.getProperty("user.home");
System.setProperty("user.dir", strHome);
String strDir = System.getProperty("user.dir");
System.out.print(strDir + ">");
}
public static void changDir(String str){ //转换目录的方法
if(str.indexOf("dir") < 0 && str.endsWith(":")){
System.setProperty("user.dir", str + "\\");
}
else if(str.indexOf("cd") >= 0 && str.indexOf(":") >= 0){
int i = 3;
String str1 = str.substring(i);
System.setProperty("user.dir",str1);
}
else if(str.indexOf("cd") >= 0 && str.indexOf(":") < 0){
String dir = System.getProperty("user.dir");
String temp = dir.substring(0,2);
String tempStr = str.substring(3);
System.setProperty("user.dir", temp + tempStr);
}
else if(str.indexOf("cd /") == 0){
String dir = System.getProperty("user.dir");
String dirTmp = dir.substring(0, 3);
System.setProperty("user.dir", dirTmp);
}
else if(str.indexOf("cd..") == 0){
}
}
}
StartCmd.java
package com;
import java.util.Scanner;
import com.cmd.*;
public class StartCmd {
/**
* @param args
*/
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
JavaCmd.showWindow();
while(true){
String command =input.nextLine();
Process pro = JavaCmd.execCmd(command);
JavaCmd.showResult(pro);
String strDir = System.getProperty("user.dir");
System.out.print(strDir + ">");
}
}
}
- 大小: 47.1 KB
分享到:
相关推荐
java语言通过cmd命令在远程电脑上创建定时任务,从而达到控制远程开启或者关闭自己想要处理的应用程序,而不用亲临。很简单,由于win10系统的安全性,使用邮箱在线注册过的win10估计是不行的,自己试吧。
例如,要运行一个CMD命令,你可以这样写: ```java Runtime.getRuntime().exec("cmd /c dir"); ``` 这里的`cmd /c`是用来执行命令并关闭CMD窗口的。 2. **ProcessBuilder类**:这个类在Java 5中引入,提供了更...
2、把解压后的5个java类复制进去,修改包路径 3、先运行服务器类MJServer.java,再运行客户端类MyClient.java 4、提示连接成功后,在服务类的控制台输入cmd命令,例如ping 127.0.0.1 5、控制台可以看到客户端返回的...
通过在java程序中调用cmd ,来查找在doc的运行,来查找类似的cmd命令
【标题】"纯JAVA写的银行系统,用CMD执行"揭示了一个基于Java编程语言开发的银行管理系统,该系统设计用于在命令行环境下运行。这个系统涵盖了银行日常操作中的多个功能,如用户登录、账户余额查询、存款与取款、...
例如,如果你想要运行`dir`命令,可以这样写: ```java String command = "cmd /c dir"; // Windows Process process = Runtime.getRuntime().exec(command); ``` 在这里,`/c` 参数告诉CMD执行完命令后关闭...
cmd,java基础篇 学习: (1)windows+r弹出窗口输入cmd到DOS环境 (2)cd.. //退到上一层的文件夹,若想再退一层再输入一次cd.. 最多退回到盘符,若到这里再输入一次cd..不会有任何反应 cd\ //直接跳到盘符,...
在IT行业中,命令行工具是系统管理员和开发者的重要助手,其中CMD(命令提示符)是Windows操作系统中的一个基本工具。CMD命令加密工具是专门用于在命令行环境下对数据进行加密的实用程序,它允许用户安全地存储和...
然而,在CMD环境下运行Java程序时可能会遇到一个令人头疼的问题——接口返回结果出现乱码。这种现象不仅影响了程序的正常运行,还可能导致数据处理错误,增加调试难度。 #### 二、原因分析 在深入探讨解决方案之前...
Java中执行cmd命令的最常见方法是使用Runtime.getRuntime().exec(command)方法,该方法可以执行系统命令,并返回一个Process对象,该对象可以用于获取命令的执行结果。下面是一个示例代码: ```java public static ...
用Java编写的一个小工具,可以执行cmd命令,并将执行结果打印出来
首先,我们可以使用多种编程语言来实现CMD调用,例如Python、Java、C#、VBScript等。这里以Python为例,讲解如何进行CMD调用。在Python中,我们可以使用`subprocess`模块来创建新的进程,执行命令并获取其输出。 1....
Java贷款支付程序是一种基于命令行(cmd)的实用工具,用于帮助用户计算贷款的月度还款额。在Java编程环境中,此类程序通常涉及到基础的金融计算和循环结构,这些都是计算机科学与金融领域相结合的重要概念。 首先...
java中通过cmd指令输入读写文件
【描述】:“用vb写的,仿照windows下的cmd程序,有兴趣的可以研究下” 这个描述暗示了一个学习和探索的过程。开发者使用VB创建了一个应用程序,该应用模仿了CMD.EXE的部分或全部功能。这可能包括命令行输入、命令...
此工具通过预设的批处理脚本(如`java调试帮助程序.cmd`)简化了这些步骤,初学者无需记忆繁琐的命令,只需点击即可执行相应操作,极大地降低了入门难度。 2. **代码管理**:对于初学者来说,保持代码的整洁和组织...
用java写的命令行下的五子棋代码和一个清屏的动态链接库,在五子棋代码里通过jni调用来实现清屏。 五子棋算法是参考的这个博客http://blog.163.com/liuliang_nice/blog/static/10274620200741201527290/ 文章提到的...
这份实验报告由学生何秀聘完成,旨在通过编写一个Win简单的计算器程序,达到熟悉Java运行环境和掌握Java语言运用的目的。实验环境是基于jdk1.6.0和eclipse3.2开发工具。 【实验内容与要求】 实验的主要内容是利用...
CMD作为Windows操作系统的一个重要组成部分,提供了丰富的命令行工具,可以帮助用户高效地完成一系列任务,如文件管理、系统维护等。 #### 二、核心命令详解 ##### 1. **ASSOC** - **功能**:显示或修改文件扩展...