`
Brooke
  • 浏览: 1180725 次
  • 性别: 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上百实例源码以及开源项目

    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...

    JAVA上百实例源码以及开源项目源代码

    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...

    java11安装包正式版

    JAVA JDK 11最新版可以帮助用户轻松的获取到JAVA的运行环境,让你在电脑上进行程序开发操作。JAVA JDK 11软件新增Epsilon 垃圾收集器和lambda 参数的局部变量语法,可以有效的提高开发者的生产效率和Java应用程序的...

    java使用sigar检测CPU占用率

    Sigar有C,C#,Java和Perl API,java版的API为sigar.jar sigar.jar的底层是用C语言编写的,它通过本地方法来调用操作系统API来获取系统相关数据。Windows操作系统下Sigar.jar 依赖sigar-amd64-winnt.dll或sigar-x86-...

    java开源包11

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包6

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包9

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包101

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包4

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包5

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包8

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包10

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包3

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包1

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包2

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    毕业设计 ssm java 药品销售系统.lwppt

    毕业设计 ssm java 药品销售系统.lwppt 实现功能包括管理员;管理员个人中心、用户管理、医生管理、药品信息管理、药品分类管理、订单配送管理、系统管理、订单管理,用户;个人中心、订单配送管理、订单管理,医生...

    基于java的教师评教系统毕业设计

    本系统的开发使获取基于Java的教师评教系统信息能够更加方便快捷,同时也使基于Java的教师评教教学评价信息变的更加系统化、有序化。系统界面较友好,易于操作。 关键词:基于Java的教师评教系统;JAVA;Mysql

    java初学者必看

    1.2.3 Java网络操作系统 1.3 Java的特点 1.4 Java程序类型 1.5 JDK与JRE 1.5.1 Java开发工具包 1.5.2 Java运行环境 1.6 Java技术体系 1.7 Java虚拟机 1.7.1 虚拟机数据类型 1.7.2 Java虚拟机的生命周期 ...

    操作系统(内存管理)

    free:该函数获得指向由 malloc 分配的内存片段的指针,并将其释放,以便以后的程序或操作系统使用(实际上,一些 malloc 实现只能将内存归还给程序,而无法将内存归还给操作系统)。 物理内存和虚拟内存 要理解...

Global site tag (gtag.js) - Google Analytics