首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以使用Java收集有关计算机硬件的信息?

是否可以使用Java收集有关计算机硬件的信息?
EN

Stack Overflow用户
提问于 2010-08-31 05:47:13
回答 4查看 4K关注 0票数 1

如果是这样,那么是如何实现的呢?我正在为学校做一个团队项目。我认为Java实际上不能直接访问硬件,因为这将使跨平台变得困难。我需要知道这一点,因为经过一些快速的Googling搜索,我还没有找到任何东西,我的团队成员(他们想要这样做并想使用Java)似乎不确定如何继续-在显然比我做了更多的搜索之后。

EN

回答 4

Stack Overflow用户

发布于 2010-08-31 05:53:11

您的权利在于,您不能直接从Java访问硬件(除非您调用本机代码,但这不是您需要的),因为它运行在沙箱环境中,即Java虚拟机(JVM)。

但是,您可以从JVM获取一些基本信息,这些信息是从底层操作系统收集的。看一看using Java to get OS-level system information

票数 2
EN

Stack Overflow用户

发布于 2010-08-31 06:08:42

你要找的是SIGAR API

概述

Sigar API提供了一个可移植的接口来收集系统信息,例如:

  1. 系统内存、交换、cpu、平均负载、正常运行时间、metrics
  2. Network内存、cpu、凭据信息、状态、参数、环境、打开文件
    1. 文件系统检测和metrics
    2. Network接口检测、配置信息和指标
    3. TCP和UDP连接表网络路由表

此信息在大多数操作系统中都可用,但每个操作系统都有自己的提供方式。SIGAR为开发人员提供了一个API来访问此信息,而无需考虑底层平台。核心应用程序接口是用纯C实现的,绑定当前实现为Java、Perl、Ruby、Python、Erlang、PHP和C#。

票数 2
EN

Stack Overflow用户

发布于 2010-08-31 05:56:08

使用原生Java API能够获得的信息量非常小,因为您的程序通常只知道它所在的VM。

但是,您可以使用call out to the command line,运行本机应用程序并解析结果。然而,这在Java应用程序中并不是特别好的形式,因为您失去了通常与该语言相关的跨平台优势。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3604486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档