java获取系统硬件信息的第三方jar包

官网:https://support.hyperic.com/display/SIGAR/Home%3bjsessionid=D9A582CF35294BA1F39FCBD2CC3CF0DB#Home-download

下载:http://sourceforge.net/projects/sigar/?source=typ_redirect

一、目前支持的操作系统清单:


二、文件内容:


三、window系统下需要的Jar包(红色框里面为需要导入的文件)


四、例子:

1、获取内存信息

package com.shadowOfCode.sigar.demo3.examples;

import org.hyperic.sigar.Mem;
import org.hyperic.sigar.Swap;
import org.hyperic.sigar.SigarException;

/**
 * Display amount of free and used memory in the system.
 */
public class Free extends SigarCommandBase {

    public Free(Shell shell) {
        super(shell);
    }

    public Free() {
        super();
    }

    public String getUsageShort() {
        return "Display information about free and used memory";
    }

    private static Long format(long value) {
        return new Long(value / 1024);
    }

    public void output(String[] args) throws SigarException {
        Mem mem   = this.sigar.getMem();
        Swap swap = this.sigar.getSwap();

        Object[] header = new Object[] { "total", "used", "free" };

        Object[] memRow = new Object[] {
            format(mem.getTotal()),
            format(mem.getUsed()),
            format(mem.getFree())
        };

        Object[] actualRow = new Object[] {
            format(mem.getActualUsed()),
            format(mem.getActualFree())
        };

        Object[] swapRow = new Object[] {
            format(swap.getTotal()),
            format(swap.getUsed()),
            format(swap.getFree())
        };

        printf("%18s %10s %10s", header);

        printf("Mem:    %10ld %10ld %10ld", memRow);

        //e.g. linux
        if ((mem.getUsed() != mem.getActualUsed()) ||
            (mem.getFree() != mem.getActualFree()))
        {
            printf("-/+ buffers/cache: " + "%10ld %10d", actualRow);
        }

        printf("Swap:   %10ld %10ld %10ld", swapRow);

        printf("RAM:    %10ls", new Object[] { mem.getRam() + "MB" });
    }

    public static void main(String[] args) throws Exception {
        new Free().processCommand(args);
    }
}

2、获取CPU信息

package com.shadowOfCode.sigar.demo3.examples;

import org.hyperic.sigar.CpuPerc;
import org.hyperic.sigar.Sigar;
import org.hyperic.sigar.SigarException;
import org.hyperic.sigar.SigarLoader;

/**
 * Display cpu information for each cpu found on the system.
 */
public class CpuInfo extends SigarCommandBase {

    public boolean displayTimes = true;
    
    public CpuInfo(Shell shell) {
        super(shell);
    }

    public CpuInfo() {
        super();
    }

    public String getUsageShort() {
        return "Display cpu information";
    }

    private void output(CpuPerc cpu) {
        println("User Time....." + CpuPerc.format(cpu.getUser()));
        println("Sys Time......" + CpuPerc.format(cpu.getSys()));
        println("Idle Time....." + CpuPerc.format(cpu.getIdle()));
        println("Wait Time....." + CpuPerc.format(cpu.getWait()));
        println("Nice Time....." + CpuPerc.format(cpu.getNice()));
        println("Combined......" + CpuPerc.format(cpu.getCombined()));
        println("Irq Time......" + CpuPerc.format(cpu.getIrq()));
        if (SigarLoader.IS_LINUX) {
            println("SoftIrq Time.." + CpuPerc.format(cpu.getSoftIrq()));
            println("Stolen Time...." + CpuPerc.format(cpu.getStolen()));
        }
        println("");
    }

    public void output(String[] args) throws SigarException {
        org.hyperic.sigar.CpuInfo[] infos =
            this.sigar.getCpuInfoList();

        CpuPerc[] cpus =
            this.sigar.getCpuPercList();

        org.hyperic.sigar.CpuInfo info = infos[0];
        long cacheSize = info.getCacheSize();
        println("Vendor........." + info.getVendor());
        println("Model.........." + info.getModel());
        println("Mhz............" + info.getMhz());
        println("Total CPUs....." + info.getTotalCores());
        if ((info.getTotalCores() != info.getTotalSockets()) ||
            (info.getCoresPerSocket() > info.getTotalCores()))
        {
            println("Physical CPUs.." + info.getTotalSockets());
            println("Cores per CPU.." + info.getCoresPerSocket());
        }

        if (cacheSize != Sigar.FIELD_NOTIMPL) {
            println("Cache size...." + cacheSize);
        }
        println("");

        if (!this.displayTimes) {
            return;
        }

        for (int i=0; i<cpus.length; i++) {
            println("CPU " + i + ".........");
            output(cpus[i]);
        }

        println("Totals........");
        output(this.sigar.getCpuPerc());
    }

    public static void main(String[] args) throws Exception {
        new CpuInfo().processCommand(args);
    }
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
系统主要实现对图书馆图书借阅信息的管理,主要管理读者信息、图书信息、借阅与归还信息系统用户的信息。 (1)读者信息管理:能够对读者的基本信息进行管理,括新增读者,如学校新来一名教师,想要借书,就必须先添加读者信息;读者信息的修改,如学生转到别的专业,此时要修改学生的基本信息;删除读者的信息,比如某个学生中途退学了,可以将其信息删除。查询读者的信息,比如有同学拾到了一张借阅卡,卡上有学生的编号,通过此号来查询学生的联系电话,从而可以找到学生。 (2)图书信息管理:能够对图书的基本信息进行管理,括新增图书,学校每年会购进新书,此时需要将新书的信息录入系统中;图书信息的修改,如学生借书后将图书丢失,此时需要修改图书的总数量,使总数减1;删除图书,学校在购进新书的同时,每年会对过期的图书进行清理,不再提供借阅,此时就需要将这些图书的信息系统中删除。查询图书的信息,比如要查看有哪些是Java相关的书籍或者指定ISBN号的图书等。 (3)图书借阅信息管理:能够对图书的借阅信息进行记录,括读者信息、图书信息、借阅时间等信息。 (4)图书归还信息管理:能够对图书的借阅信息进行记录,括读者信息、图书信息、归还时间、是否超期、罚金等信息。 (5)系统用户信息管理:能够对系统用户的信息进行管理,括增加新的系统操作用户,对当前系统用户的密码进行修改,以及删除某一用户。 --------------------- 作者:forever_kirito 来源:CSDN 原文:https://blog.csdn.net/forever_kirito/article/details/79111987 版权声明:本文为博主原创文章,转载请附上博文链接!
Java中,我们可以通过引入第三方JAR包来使用第三方库中的功能。要执行命令,我们可以使用Java中的`ProcessBuilder`类来创建一个新的进程,并在该进程中执行命令。 首先,我们需要将第三方JAR包添加到Java项目的构建路径中。这可以通过将JAR文件复制到项目的`lib`目录下,并在IDE中将其添加到构建路径中实现。 然后,我们需要使用`ProcessBuilder`类创建一个新的进程,并在该进程中执行命令。我们可以通过调用`start()`方法来启动这个新进程。 下面是一个简单的示例代码,展示了如何引入第三方JAR包并执行命令: ```java import java.io.IOException; public class ExecuteCommand { public static void main(String[] args) { try { // 创建ProcessBuilder对象,并将第三方JAR包的名称和要执行的命令作为参数 ProcessBuilder pb = new ProcessBuilder("java", "-jar", "third-party.jar", "command"); // 设置进程的工作目录(可选) pb.directory(new File("path/to/working/directory")); // 启动新进程 Process process = pb.start(); // 等待进程执行完毕并获取返回值 int exitCode = process.waitFor(); // 检查进程是否执行成功 if (exitCode == 0) { System.out.println("命令执行成功"); } else { System.out.println("命令执行失败"); } } catch (IOException | InterruptedException e) { System.out.println("命令执行发生异常: " + e.getMessage()); } } } ``` 在上面的代码中,我们使用`ProcessBuilder`类创建一个新的进程,并将第三方JAR包的名称和要执行的命令作为参数传递给这个进程。然后,我们可以通过调用`start()`方法来启动这个新进程,并使用`waitFor()`方法等待进程执行完毕并获取返回值。最后,我们可以根据返回值来判断命令是否执行成功。 需要注意的是,我们可以使用`directory()`方法设置进程的工作目录,这对于某些命令可能是必需的。 希望以上解答对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值