专为 Java 设计!一个本地免费的操作系统和硬件信息库,服务器性能监控很强【文末福利】

之前一直在维护公司内部使用的服务监控系统,不过因为有新的开发任务,所以需要暂时把手里这套系统交接给新来的同事开发维护了。在交接讲解的过程中,发现对于服务器硬件参数监控的方式,使用了开源的 OSHI。不禁一拍大腿,这是个好东西啊!所以在这里分享给大家。

项目简介

OSHI 是一个基于 JNA(本地)的免费的操作系统和硬件信息库,专为 Java 设计。它可以跨平台的获取系统信息以及硬件信息,如操作系统版本、进程、内存和 CPU 使用情况、磁盘和分区、设备、传感器等。它不需要安装任何额外的本地库,因此接入起来很方便。

项目使用

Maven 依赖

我们通过配置 Maven 依赖来引入 OSHI,如下所示:

<dependency>
    <groupId>com.github.oshi</groupId>
    <artifactId>oshi-core</artifactId>
    <version>6.4.0</version>
</dependency>

这里注意的是,不同版本的 JDK 环境,需要引用不同版本的包:

  • JDK8: oshi-core-6.4.0

  • JPMS: oshi-core-java11-6.4.0

  • JDK6: oshi-core-3.14.0

简单的例子

在这里大叔写一个简单的例子,包括了一些常用硬件参数的获取,注释已经写的很详细了:

public static void main(String[] args) {
    // 系统信息类
    SystemInfo systemInfo = new SystemInfo();
    // 获取硬件信息
    HardwareAbstractionLayer hardware = systemInfo.getHardware();

    // CPU信息
    CentralProcessor centralProcessor = hardware.getProcessor();
    // 获取CPU名称
    String name = centralProcessor.getProcessorIdentifier().getName();
    // 获取CPU核心数
    int physicalProcessorCount = centralProcessor.getPhysicalProcessorCount();
    // 获取当前CPU每个核心的频率
    long[] currentFreq = centralProcessor.getCurrentFreq();
    System.out.println("CPU名称:" + name);
    System.out.println("CPU核心数:" + physicalProcessorCount);

    // 内存信息
    GlobalMemory memory = hardware.getMemory();
    // 内存总大小
    long totalOfG = memory.getTotal() / 1024 / 1024 / 1024;
    // 可用大小
    long availableOfG = memory.getAvailable() / 1024 / 1024 / 1024;
    System.out.println("内存总大小:" + totalOfG + "G");
    System.out.println("内存可用大小:" + availableOfG + "G");

    // 磁盘信息
    List<HWDiskStore> diskStores = hardware.getDiskStores();
    // 获取磁盘总大小
    long total = diskStores.stream().mapToLong(HWDiskStore::getSize).sum();
    System.out.println("磁盘总大小:" + total / 1024 / 1024 / 1024 + "G");

    // 系统运行时间
    long uptimeInSeconds = systemInfo.getOperatingSystem().getSystemUptime();
    System.out.println("系统运行时间:" + uptimeInSeconds / 3600 + "小时");
}

在本地运行之后输出如下:

图片

一个漂亮的仪表盘

看过上面的例子,你会发现 OSHI 其实很好用吧。但是只有一个例子的展示大家应该不太满足,所以大叔我特意找了一个已经开发好的监控工具——Ward。Ward 是一款简单、极简主义的服务器监控工具。它用漂亮的仪表盘的形式来展示系统的硬件信息。如图所示:

图片

其实 Ward 是一个很简单的 springboot 项目,借助于该项目,简单阅读下源码就能更好的理解 OSHI 的使用啦。

总结

今天给大家介绍了 OSHI 的使用方式,以及另一个使用 OSHI 的 Web 服务。感兴趣的朋友们可以亲自体验一下哈,项目地址都放到下面了:

-- OSHI
https://github.com/oshi/oshi
-- Ward
https://github.com/Rudolf-Barbu/Ward

写在最后(私活源码)

最近有一些读者问我有没有完整的基于Springboot+Vue的在线考试系统项目源码,今天给大家整理了一下,并且录制了搭建的教程,无偿分享给大家。

一、系统运行图

1、登陆页面

图片

2、后台管理

图片

3、全套环境资源

图片

​源码文件部分截图,带视频教程

源码免费领取方式

扫码关注本号,后台回复 考试

扫码关注本号,后台回复 考试

持续关注本号,分享更多项目源码

分享一些关于学习Java编程方面的经验

在实际工作中,开发Java项目是一项重要且常见的任务。为了帮助您更好地进行Java项目开发,本文将分享一些实践经验和技巧,以帮助您顺利完成项目。

1. 需求分析与设计

在开始项目之前,首先需要进行需求分析和设计。明确项目的目标和功能,并根据需求设计出合理的系统架构和数据库结构。这个阶段的工作对于后续的开发和测试非常关键,务必认真对待。

2. 选择合适的开发工具和框架

Java有许多优秀的开发工具和框架可供选择,如Eclipse、IntelliJ IDEA、Spring等。根据项目的特点和需求,选择适合的工具和框架可以提高开发效率和代码质量。

3. 模块化开发

将项目拆分成多个模块,每个模块负责一个特定的功能。通过模块化开发,可以提高代码的可维护性和复用性。同时,合理划分模块也便于团队协作和并行开发。

4. 使用版本控制工具

使用版本控制工具(如Git)管理项目代码是一个良好的习惯。通过版本控制,可以方便地进行代码的追踪、回滚和合并,同时也便于多人协作开发。

5. 编写高质量的代码

编写高质量的代码是每个开发者的追求。遵循编码规范,使用有意义的变量和方法命名,注重代码的可读性和可维护性。同时,及时进行代码的重构和优化,以提高代码的性能和可靠性。

6. 单元测试和集成测试

在开发过程中,及时编写单元测试和集成测试是保证代码质量的有效手段。通过测试,可以验证代码的正确性和稳定性,减少后期的调试和修复工作。

7. 持续集成与部署

借助持续集成工具(如Jenkins),实现自动化的构建、测试和部署流程。持续集成可以提高开发效率,减少人为错误,并确保项目的稳定性和可靠性。

8. 文档和知识管理

在项目开发过程中,及时编写文档记录项目的设计思路、开发过程和技术方案。同时,建立知识库或内部论坛,方便团队成员之间的交流和学习。

以上是关于Java项目开发的一些实践经验和技巧。希望这些内容对您有所帮助,祝您在实际工作中取得成功!

 

  • 17
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值