1.package com.cmd;
2.
3.import java.io.*;
4.
5.
6./**
7. * 模拟cmd的类
8. * @author lupin
9. * @version 1.0 2009-12-25
10. */
11.public class JavaCmd {
12. public static Process execCmd(String command){ //执行cmd命令的方法
13. JavaCmd.changDir(command);
14. Runtime run = Runtime.getRuntime();
15. Process pro =null;
16. try {
17. pro = run.exec("cmd /c" + command,null,new File(System.getProperty("user.dir")));
18. } catch (IOException e) {
19. // TODO Auto-generated catch block
20. e.printStackTrace();
21. }
22. return pro;
23. }
24.
25. public static void showResult(Process pro){ //回显命令执行结果的方法
26. InputStream is = pro.getInputStream();
27. BufferedReader br = new BufferedReader(new InputStreamReader(is));
28. String s = null;
29. try {
30. s = br.readLine();
31. } catch (IOException e) {
32. // TODO Auto-generated catch block
33. e.printStackTrace();
34. }
35. while(s != null){
36. System.out.println(s);
37. try {
38. s = br.readLine();
39. } catch (IOException e) {
40. // TODO Auto-generated catch block
41. e.printStackTrace();
42. }
43. }
44. }
45.
46. public static void showWindow(){ //显示cmd窗口
47. System.out.println("Microsoft Windows XP [版本 5.1.2600]");
48. System.out.println("<c> 版权所有 1985-2001 Microsoft Corp.");
49. String strHome = System.getProperty("user.home");
50. System.setProperty("user.dir", strHome);
51. String strDir = System.getProperty("user.dir");
52. System.out.print(strDir + ">");
53. }
54.
55. public static void changDir(String str){ //转换目录的方法
56. if(str.indexOf("dir") < 0 && str.endsWith(":")){
57. System.setProperty("user.dir", str + "\\");
58. }
59. else if(str.indexOf("cd") >= 0 && str.indexOf(":") >= 0){
60. int i = 3;
61. String str1 = str.substring(i);
62. System.setProperty("user.dir",str1);
63. }
64. else if(str.indexOf("cd") >= 0 && str.indexOf(":") < 0){
65. String dir = System.getProperty("user.dir");
66. String temp = dir.substring(0,2);
67. String tempStr = str.substring(3);
68. System.setProperty("user.dir", temp + tempStr);
69. }
70. else if(str.indexOf("cd /") == 0){
71. String dir = System.getProperty("user.dir");
72. String dirTmp = dir.substring(0, 3);
73. System.setProperty("user.dir", dirTmp);
74. }
75. else if(str.indexOf("cd..") == 0){
76.
77. }
78. }
79.}
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
Java代码
1.package com;
2.
3.import java.util.Scanner;
4.
5.import com.cmd.*;
6.
7.public class StartCmd {
8.
9. /**
10. * @param args
11. */
12. public static void main(String[] args) {
13. Scanner input = new Scanner(System.in);
14. JavaCmd.showWindow();
15. while(true){
16. String command =input.nextLine();
17. Process pro = JavaCmd.execCmd(command);
18. JavaCmd.showResult(pro);
19. String strDir = System.getProperty("user.dir");
20. System.out.print(strDir + ">");
21. }
22. }
23.
24.}
分享到:
相关推荐
以下是一些使用Java获取服务器基本信息的关键知识点: 1. **第三方库Sigar**: Sigar(System Information Gatherer and Reporter)是由Hyperic公司开发的一个跨平台的系统监控库。它提供了丰富的API来获取各种操作...
在提供的代码示例中,`System.getProperty("os.name")`用于获取操作系统名称,后续逻辑会根据此名称决定调用哪个特定于操作系统的函数来计算CPU占用率。 #### 2. **Windows平台下的CPU占用率计算** 在Windows平台...
Java IPMI(Intelligent Platform Management Interface)是一种标准的硬件管理接口,用于远程监控和管理系统硬件的状态,如服务器的温度、风扇速度、内存使用情况等。VxIPMI是基于Java的IPMI实现,它提供了方便的...
在IT领域,尤其是在系统管理和监控方面,Windows Management Instrumentation(WMI)是一个强大的工具,它提供了访问和管理Windows操作系统及应用程序的接口。而Java开发者有时需要在Java程序中获取Windows系统的...
Java SIGAR库是一个强大的工具,用于跨平台地获取操作系统级别的信息。这个项目示例主要展示了如何使用SIGAR库1.6版本来收集和分析本地系统的各种信息,包括JVM、内存、操作系统、文件系统和网络状态。以下是这些...
在“借助Sigar API获取操作系统信息”这个项目中,你将学习如何利用Sigar库来获取和报告操作系统的关键信息。首先,你需要在你的开发环境中安装Sigar库,这通常涉及下载相应的二进制包,并将其添加到你的项目类路径...
2. **内存监控**:监测物理内存和虚拟内存的使用,可能涉及操作系统的内存管理接口,例如在Linux下解析/proc/meminfo文件。 3. **网卡监控**:收集网络接口的发送和接收字节数,可能需要监听网络接口的统计信息,如...
Java调用OPC(OLE for Process Control)获取点位数据是一项常见的工业自动化任务,尤其在SCADA(Supervisory Control and Data Acquisition)系统中。OPC是微软平台上的一个标准接口,它允许不同厂商的软件应用程序...
VBScript是Windows操作系统内置的一种脚本语言,能够与Office应用程序交互,包括Excel。通过VBScript,我们可以直接操作Excel对象模型,获取每个工作表的打印预览页数,这是POI无法做到的。 以下是实现这个功能的...
Java作为一种跨平台的编程语言,具有良好的可移植性和丰富的库支持,使得它成为实现操作系统相关功能的理想选择。 调度问题在操作系统中至关重要,因为它涉及到处理器资源的分配,直接影响系统的性能和响应时间。...
例如,`System.getProperty("os.name")`可以获取操作系统的名称,`System.getProperty("java.version")`则返回JVM的版本。还可以获取用户的主目录、Java安装路径等信息。 2. **环境变量**:Java通过`System.getenv...
3. **获取MAC地址**:在Java中,直接获取MAC(物理)地址相对复杂,因为这涉及到操作系统级别的硬件信息。通常,可以通过`java.net.NetworkInterface`类来获取。首先,通过`NetworkInterface.getNetworkInterfaces()...
Sigar(System Information Gatherer and Reporter)是一款强大的跨平台系统信息收集工具,它提供了一种简单的方式来获取操作系统级别的信息,如CPU使用率、内存状态、网络接口统计、进程信息等。在Java环境中,通过...
Java获取ipa_apk文件信息jar包是一个用于解析Android APK和iOS IPA文件的工具包,它提供了在Java环境中读取这两个移动应用格式的关键元数据的能力。这个工具包对于开发者来说非常实用,尤其是那些需要批量处理或分析...
2. 内存管理:操作系统负责分配和回收内存,防止内存泄漏。Java通过垃圾收集机制自动进行内存回收,程序员不再需要手动管理内存,但理解如何优化对象生命周期和内存使用仍然是必要的。 3. 输入/输出(I/O)管理:...
2. **操作系统API**:通过操作系统提供的API(如Windows中的`wmic`命令),可以获取更多的系统信息。 3. **第三方库**:如Apache Commons或者其它专门用于系统信息收集的库,可以简化开发过程。 综上所述,Java提供...
例如,获取操作系统信息: ```java try { System.out.println("Operating System: " + sigar.getOs().getName()); } catch (SigarException e) { e.printStackTrace(); } ``` CPU信息包括总体利用率和每个CPU...
5. **RESTful API**:为了实现前后端分离,Java电子商城系统通常会提供一套RESTful API,供前端应用调用获取数据或执行操作。这些API遵循HTTP协议,具有统一的资源标识符和无状态等特点。 6. **安全性**:Spring ...
在实现Windows日志获取时,我们可以利用Java的JNA(Java Native Access)库,它是Java与本地操作系统交互的桥梁。JNA允许我们调用Windows API函数,如ReadEventLog,从而读取和解析日志文件。 在设计程序时,首先...
在Java编程语言中,捕获控制台的输出信息是一个常见的需求,尤其是在进行单元测试或调试时,需要收集程序运行过程中的标准输出以便于分析。在提供的代码片段中,展示了一种通过重定向`System.out`流来实现这一目标的...