sigar如何在Java中计算机器位模式

艾宾·冈兹(AabinGunz)

x86当我使用32位Java执行时,我有一个程序可为我提供64位系统上的体系结构类型

如果我提供64位Java,则它会返回x64

Java位模式如何影响sigar输出?

还是有其他命令可以返回正确的计算机体系结构和位模式类型?

这是我的示例代码

import org.hyperic.sigar.OperatingSystem;
import org.hyperic.sigar.Sigar;
import org.hyperic.sigar.SigarException;

public class SigarInfo {
    private final Sigar sigar = new Sigar();            
    private final OperatingSystem os = OperatingSystem.getInstance();

    public static void main(String[] args) throws SigarException{
        SigarInfo sysInfo = new SigarInfo();
        System.out.println("Arch: "+sysInfo.os.getArch());
        System.out.println("Datamodel: "+sysInfo.os.getDataModel());
    }
}

在64位计算机上输出

Arch: x64
Datamodel: 64

在32位计算机上输出

Arch: x86
Datamodel: 32

在具有32位Java的64位计算机上输出

Arch: x86
Datamodel: 32

使用的版本:hyperic-sigar-1.6.4

维克多·阿西耶夫(Viktor Aseev)

Sigar和纯Java总是返回JVM的体系结构,而不是操作系统的体系结构。这是因为有关您的操作系统的信息对大多数应用程序无用

在99.9%的情况下,您需要了解JVM进程的确切体系结构,而不是OS版本,因为这会直接影响您的应用程序。JVM体系结构确定您的应用程序应使用哪些本机库,内存结构,CPU运行模式以及许多其他方面。

假设您在x64 Windows上运行x86 JVM。您需要确定应用程序可以使用多少内存。基于JVM信息,我可以回答这个问题。基于操作系统版本,我什么也不能说。

因此,使用操作系统信息可能会导致错误的决定,因此我不建议您完全使用它。即使只是将其显示给用户。

如果由于某些原因确实需要确定操作系统版本,则可以在Windows上使用此版本:

    Process process = Runtime.getRuntime().exec("CMD /C SYSTEMINFO | FINDSTR /B /C:\"System Type\"");
    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
    String line = bufferedReader.readLine();
    if (line.indexOf("x64") > 0)
        System.out.println("x64 architecure");
    else
        System.out.println("x86 architecure");

对于linux,您可以lsb_release -a在同一代码中使用命令来获取体系结构。

系统可以决定,比如在这

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

sigar如何在Java中计算机器位模式

来自分类Dev

如何在MATLAB中计算机器epsilon?

来自分类Dev

如何在64位计算机上以32位模式运行exe?

来自分类Dev

dbus如何计算机器ID?

来自分类Dev

如何在Windows 64位计算机上将C ++应用程序编译为x64模式?

来自分类Dev

如何在Windows 64位计算机上将C ++应用程序编译为x64模式?

来自分类Dev

如何在64位计算机上的32位Python中使用virtualenv?

来自分类Dev

在Advanced Installer中,如何在64位计算机中检测32位进程?

来自分类Dev

如何在32位计算机上安装64位.deb文件?

来自分类Dev

如何在我的64位计算机上使用gcc编译32位.o文件?

来自分类Dev

如何在64位计算机上构建32位deb文件?

来自分类Dev

如何在32位计算机上安装64位.deb文件?

来自分类Dev

如何在64位计算机上测试特定于32位内核的syscall?

来自分类Dev

Wix:如何在64位计算机上写入32位寄存器

来自分类Dev

如何计算机器在线百分比

来自分类Dev

如何在32位计算机上将100G整数插入向量中?

来自分类Dev

如何在具有Ubuntu 12.04的32位计算机上安装Docker?

来自分类Dev

如何在gdb的64位计算机上获取8字节指针值?

来自分类Dev

如何在Windows 64位计算机上运行Mule独立社区版

来自分类Dev

我如何在Pentium 4计算机上安装Ubuntu 64位?

来自分类Dev

如何在Matlab中计算图像的模式

来自分类Dev

如何在64位计算机上使用64位处理器运行QEMU?

来自分类Dev

如何在64位Windows计算机上链接32位Nasm程序集目标代码

来自分类Dev

如何在64位计算机上使用64位处理器运行QEMU?

来自分类Dev

如何在64位Windows计算机上链接32位Nasm程序集目标代码

来自分类Dev

如何在与提交计算机不同的计算机上获得Dask计算的结果?

来自分类Dev

如何在机器学习中计算日志损失

来自分类Dev

如何在机器学习中计算日志损失

来自分类Dev

使用gdb计算机器指令

Related 相关文章

  1. 1

    sigar如何在Java中计算机器位模式

  2. 2

    如何在MATLAB中计算机器epsilon?

  3. 3

    如何在64位计算机上以32位模式运行exe?

  4. 4

    dbus如何计算机器ID?

  5. 5

    如何在Windows 64位计算机上将C ++应用程序编译为x64模式?

  6. 6

    如何在Windows 64位计算机上将C ++应用程序编译为x64模式?

  7. 7

    如何在64位计算机上的32位Python中使用virtualenv?

  8. 8

    在Advanced Installer中,如何在64位计算机中检测32位进程?

  9. 9

    如何在32位计算机上安装64位.deb文件?

  10. 10

    如何在我的64位计算机上使用gcc编译32位.o文件?

  11. 11

    如何在64位计算机上构建32位deb文件?

  12. 12

    如何在32位计算机上安装64位.deb文件?

  13. 13

    如何在64位计算机上测试特定于32位内核的syscall?

  14. 14

    Wix:如何在64位计算机上写入32位寄存器

  15. 15

    如何计算机器在线百分比

  16. 16

    如何在32位计算机上将100G整数插入向量中?

  17. 17

    如何在具有Ubuntu 12.04的32位计算机上安装Docker?

  18. 18

    如何在gdb的64位计算机上获取8字节指针值?

  19. 19

    如何在Windows 64位计算机上运行Mule独立社区版

  20. 20

    我如何在Pentium 4计算机上安装Ubuntu 64位?

  21. 21

    如何在Matlab中计算图像的模式

  22. 22

    如何在64位计算机上使用64位处理器运行QEMU?

  23. 23

    如何在64位Windows计算机上链接32位Nasm程序集目标代码

  24. 24

    如何在64位计算机上使用64位处理器运行QEMU?

  25. 25

    如何在64位Windows计算机上链接32位Nasm程序集目标代码

  26. 26

    如何在与提交计算机不同的计算机上获得Dask计算的结果?

  27. 27

    如何在机器学习中计算日志损失

  28. 28

    如何在机器学习中计算日志损失

  29. 29

    使用gdb计算机器指令

热门标签

归档