我有一个程序,x86
当我使用 32 位 java 执行时,它给了我在 64 位系统上的体系结构类型。
如果我提供 64 位 java,那么它会返回x64
。
java bitmode如何影响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