`
Brooke
  • 浏览: 1182221 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

java 获取操作系统收集(2)

阅读更多
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获取服务器基本信息的方法

    以下是一些使用Java获取服务器基本信息的关键知识点: 1. **第三方库Sigar**: Sigar(System Information Gatherer and Reporter)是由Hyperic公司开发的一个跨平台的系统监控库。它提供了丰富的API来获取各种操作...

    用java获取CPU占用率

    在提供的代码示例中,`System.getProperty("os.name")`用于获取操作系统名称,后续逻辑会根据此名称决定调用哪个特定于操作系统的函数来计算CPU占用率。 #### 2. **Windows平台下的CPU占用率计算** 在Windows平台...

    java ipmi,vxipmi 通过java获取服务器信息,温度、风扇、内存等

    Java IPMI(Intelligent Platform Management Interface)是一种标准的硬件管理接口,用于远程监控和管理系统硬件的状态,如服务器的温度、风扇速度、内存使用情况等。VxIPMI是基于Java的IPMI实现,它提供了方便的...

    使用j-Interop实现java连接wmi获取windows系统信息的例子

    在IT领域,尤其是在系统管理和监控方面,Windows Management Instrumentation(WMI)是一个强大的工具,它提供了访问和管理Windows操作系统及应用程序的接口。而Java开发者有时需要在Java程序中获取Windows系统的...

    java(sigar1.6) 获取本地系统信息大全 示例project

    Java SIGAR库是一个强大的工具,用于跨平台地获取操作系统级别的信息。这个项目示例主要展示了如何使用SIGAR库1.6版本来收集和分析本地系统的各种信息,包括JVM、内存、操作系统、文件系统和网络状态。以下是这些...

    借助Sigar API获取操作系统信息

    在“借助Sigar API获取操作系统信息”这个项目中,你将学习如何利用Sigar库来获取和报告操作系统的关键信息。首先,你需要在你的开发环境中安装Sigar库,这通常涉及下载相应的二进制包,并将其添加到你的项目类路径...

    java检测程序系统

    2. **内存监控**:监测物理内存和虚拟内存的使用,可能涉及操作系统的内存管理接口,例如在Linux下解析/proc/meminfo文件。 3. **网卡监控**:收集网络接口的发送和接收字节数,可能需要监听网络接口的统计信息,如...

    java调用OPC获取点位数据

    Java调用OPC(OLE for Process Control)获取点位数据是一项常见的工业自动化任务,尤其在SCADA(Supervisory Control and Data Acquisition)系统中。OPC是微软平台上的一个标准接口,它允许不同厂商的软件应用程序...

    java调用vbs获取获取excel各sheet页打印总数

    VBScript是Windows操作系统内置的一种脚本语言,能够与Office应用程序交互,包括Excel。通过VBScript,我们可以直接操作Excel对象模型,获取每个工作表的打印预览页数,这是POI无法做到的。 以下是实现这个功能的...

    操作系统实验 调度问题 java编写

    Java作为一种跨平台的编程语言,具有良好的可移植性和丰富的库支持,使得它成为实现操作系统相关功能的理想选择。 调度问题在操作系统中至关重要,因为它涉及到处理器资源的分配,直接影响系统的性能和响应时间。...

    Java源码获取程序运行环境的信息

    例如,`System.getProperty("os.name")`可以获取操作系统的名称,`System.getProperty("java.version")`则返回JVM的版本。还可以获取用户的主目录、Java安装路径等信息。 2. **环境变量**:Java通过`System.getenv...

    Java 自动获取本机IP、MAC地址

    3. **获取MAC地址**:在Java中,直接获取MAC(物理)地址相对复杂,因为这涉及到操作系统级别的硬件信息。通常,可以通过`java.net.NetworkInterface`类来获取。首先,通过`NetworkInterface.getNetworkInterfaces()...

    Sigar Java实现系统监控

    Sigar(System Information Gatherer and Reporter)是一款强大的跨平台系统信息收集工具,它提供了一种简单的方式来获取操作系统级别的信息,如CPU使用率、内存状态、网络接口统计、进程信息等。在Java环境中,通过...

    Java获取ipa_apk文件信息jar包

    Java获取ipa_apk文件信息jar包是一个用于解析Android APK和iOS IPA文件的工具包,它提供了在Java环境中读取这两个移动应用格式的关键元数据的能力。这个工具包对于开发者来说非常实用,尤其是那些需要批量处理或分析...

    操作系统作业 (pv,作业管理,等5个的Java实现)

    2. 内存管理:操作系统负责分配和回收内存,防止内存泄漏。Java通过垃圾收集机制自动进行内存回收,程序员不再需要手动管理内存,但理解如何优化对象生命周期和内存使用仍然是必要的。 3. 输入/输出(I/O)管理:...

    Java获取系统信息(cpu,内存,硬盘,进程等)的相关方法

    2. **操作系统API**:通过操作系统提供的API(如Windows中的`wmic`命令),可以获取更多的系统信息。 3. **第三方库**:如Apache Commons或者其它专门用于系统信息收集的库,可以简化开发过程。 综上所述,Java提供...

    Java运用sigar.jar获取服务器信息测试类

    例如,获取操作系统信息: ```java try { System.out.println("Operating System: " + sigar.getOs().getName()); } catch (SigarException e) { e.printStackTrace(); } ``` CPU信息包括总体利用率和每个CPU...

    Java电子商城系统

    5. **RESTful API**:为了实现前后端分离,Java电子商城系统通常会提供一套RESTful API,供前端应用调用获取数据或执行操作。这些API遵循HTTP协议,具有统一的资源标识符和无状态等特点。 6. **安全性**:Spring ...

    自己开发的Windows日志获取源码

    在实现Windows日志获取时,我们可以利用Java的JNA(Java Native Access)库,它是Java与本地操作系统交互的桥梁。JNA允许我们调用Windows API函数,如ReadEventLog,从而读取和解析日志文件。 在设计程序时,首先...

    JAVA 获得控制台的输出信息

    在Java编程语言中,捕获控制台的输出信息是一个常见的需求,尤其是在进行单元测试或调试时,需要收集程序运行过程中的标准输出以便于分析。在提供的代码片段中,展示了一种通过重定向`System.out`流来实现这一目标的...

Global site tag (gtag.js) - Google Analytics