簡體   English   中英

如何獲取cpu、gpu和os全名

[英]How to get cpu, gpu and os full name

能否在Java中得到CPU、GPU和OS的全稱?

例如:

  • CPU: Intel(R) Core(TM) i3-8100 CPU @ 3.60GHZ 3.60GHZ
  • GPU: NVIDIA GeForce GTX 980 Ti 6GB
  • 操作系統: Windows 10 PRO x64 2004

System.getProperty("os.arch")您提供x86_64之類的東西。

System.getProperty("os.name")為您提供類似Mac OS X的東西。

System.getProperty("sun.cpu.endian")您的幫助little (這是一個非標准的屬性名稱)。

除此之外,答案大多是“不,你不能那樣做”。

您可以做的是檢查您所在的操作系統,並通過本機接口 (JNI) 或使用ProcessBuilder執行已知默認安裝在您的操作系統上的命令行工具來啟動操作系統和體系結構特定工具重新獲取此信息。

例如,如果您知道您正在安裝一些 posix(例如,mac 或 linux),您可以使用 processbuilder 運行/usr/bin/uname -a ,它會得到類似的東西:

Darwin YourSystemName.local 19.5.0 Darwin Kernel Version 19.5.0: Tue May 26 20:41:44 PDT 2020; root:xnu-6153.121.2~2/RELEASE_X86_64 x86_64

您可以運行/usr/sbin/sysctl -n machdep.cpu.brand_string來獲得類似Intel(R) Core(TM) i7-1060NG7 CPU @ 1.20GHz的東西。

但是, /usr/sbin/sysctl可能不在您的系統上。 它絕對不會出現在 windows 盒子上,它可能不會出現在各種口味的 linux 上。

嘗試測試這樣的設置將非常棘手。 您需要數百個部署(您希望支持的所有 linux 版本、各種 mac 版本、一堆 windows 版本等等)。

換句話說,這是一個相當復雜的項目!

我會考慮使用處理所有這些的庫,例如OSHI OSHI 是一個免費的基於JNA (本機)的操作系統和硬件信息庫,適用於 Java。

我最近使用了 OSHI api https://github.com/oshi/oshi它為您提供了許多 api 以獲取與 CPU 信息和操作系統相關的詳細信息。

另一種選擇是 Hyperic 的 SIGAR API。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM