怎么样用JAVA取得系统进程及相关信息.
怎么关机,重启.
取得用户名
结束进程,新建进程.

解决方案 »

  1.   

    不是吧    怎么要用java来做针对性的东西呢
    获取相关信息用api就可以了
    关机重启就调用批处理吧
    取用户名就不知道了
    结束进程也可以用批处理
    新建进程用exec
      

  2.   

    各位达人不要说得这么抽像,最好有例子,如怎么样调用API
      

  3.   

    5楼,也就是说我还要知道我应该知道要调用哪些DLL我到哪里去找我哪些DLL对我有用.
      

  4.   

    这是取得进程的代码,但是有问题帮我解决下
    取得进程:
    private List getProcessList() {
    List list = new ArrayList();   //这里我的JB2006报错,可是这样直接创建吗?
    Runtime time = Runtime.getRuntime();
    try {
    Process process = time.exec("cmd exe /c tasklist /v /nh /fo csv");
    InputStream stream = process.getInputStream();
    BufferedReader reader = new BufferedReader(new InputStreamReader(
    stream));String str = reader.readLine();
    while (str != null) {
    System.out.println(str);
    if (str != null && !str.equals("")) {
    str = str.substring(1, str.length()-1);
    String[] strs = str.split("\",\"");
    ProcessInfoObj infoObj = new ProcessInfoObj();  //ProcessInfoObj这是个什么东西,jdk1.5有吗没有找到啊
    infoObj.setProcessID(strs[1]);
    infoObj.setProcessName(strs[0]);
    infoObj.setProcessOwner(strs[6]);
    infoObj.setProcessState(strs[5]);
    infoObj.setProcessTitle(strs[8]);
    infoObj.setRunTime(strs[7]);
    infoObj.setSessionID(strs[3]);
    infoObj.setSessionName(strs[2]);
    infoObj.setUserMemory(strs[4]);
    list.add(infoObj);
    }
    str = reader.readLine();
    }
    } catch (IOException e) { // TODO Auto-generated catch block
    e.printStackTrace();
    }return list;
    }
      

  5.   

    ProcessInfoObj infoObj;
    这是一个用户定义的类,用于结构化存储进程基本信息。你在while循环中加入一句:System.out.println(str);
    就可以输出进程信息的格式化文本
    "System Idle Process","0","Services","0","24 K","Unknown","NT AUTHORITY\SYSTEM","1:44:03","��ȱ"
    "System","4","Services","0","1,828 K","Unknown","��ȱ","0:01:08","��ȱ"
    "smss.exe","436","Services","0","696 K","Unknown","NT AUTHORITY\SYSTEM","0:00:00","��ȱ"
    我这边得到的输出是这样的。那么,可以分析出来,字符串的分隔符是 "," (注意,包含引号哦),接下来就是把它写入自定义的ProcessInfoObj类(这个不用教你了吧),再压入ArrayList即可。至于List类,可以直接初始化为ArrayList实例,不过这里编译是会出现warnning的,没有关系。
      

  6.   

    开关机注销重启,
    锁定工作站,
    关闭显示器,
    启动指定程序,
    我知道有人有dll可以给java调的,可是他要钱,
    所以还是你自己找吧,
    不是太难。
      

  7.   

    List list = new ArrayList(); 接口引用指向实现类对象,很正常啊,难道是没用泛型的缘故还是没导入util包?
      

  8.   

    学习,不过还是觉得jni调用dll要好一点
      

  9.   

    谁让JAVA的优势在与跨平台呢,底层交互方面比较弱啦。还是建议你学点c,写个DLL然后用JAVA调用
      

  10.   

    用一些现成的工具生成com的wrapper,然后再去通过wrapper去调用com(dll),别直接去用jni,麻烦。