如果是这样,那怎么样?我正在为学校做一个团队项目。我认为Java实际上不能直接访问硬件,因为这会使跨平台变得困难。我需要知道这一点,因为经过一些快速的谷歌搜索,我没有发现任何东西,我的团队成员(谁想要这样做并想要使用Java)似乎不确定如何继续 - 显然比我更多的搜索已完成。
答案 0 :(得分:2)
您的权利是因为您无法直接从Java访问硬件(除非您调用本机代码,但这不是您的后续代码),因为它在沙盒环境中运行,即Java虚拟机(JVM)。
但是,您可以从底层操作系统收集的JVM中获取一些基本信息。 看看using Java to get OS-level system information
答案 1 :(得分:2)
您要找的是SIGAR API
Sigar API提供了一个便携式界面,用于收集系统信息,例如:
此信息在大多数操作系统中都可用,但每个操作系统都有自己的方式提供它。 无论底层平台如何,SIGAR都为开发人员提供了一个访问此信息的API。 核心API在纯C中实现,目前为Java,Perl,Ruby,Python,Erlang,PHP和C#实现了绑定。
答案 2 :(得分:0)
使用本机Java API可以获得的信息量非常小,因为您的程序通常只知道它所在的VM。
但是,您可以call out to the command line运行本机应用并解析结果。然而,在Java应用程序中,它并不是特别好的形式,因为您失去了通常与语言相关的跨平台优势。
答案 3 :(得分:0)
您可以使用System.getEnv()获取有关处理器的一些基本信息。
您也可以使用Runtime.getRuntime() - 有关详细信息,请参阅R. Kettelerij的回复。
另一种选择是使用JMX。例如,MemoryMXBean提供了有关RAM使用情况(堆和非堆)的一些信息。