java中如何在类中判断客户端操作系统是32位的还是64位的操作系统

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中如何在类中判断客户端操作系统是32位的还是64位的操作系统相关的知识,希望对你有一定的参考价值。

浏览器分32位和64位的吗?还是说浏览器装在多少位系统上就是多少位的

这个无法获取。。你只能根据请求的头去分析,一般是分析请求头中的UA,如下:
String userAgent = request.getHeader("user-agent");

/**
* 获取客户端操作系统信息,目前只匹配Win 7、WinXP、Win2003、Win2000、MAC、WinNT、Linux、Mac68k、Win9x
* @param userAgent request.getHeader("user-agent")的返回值
* @return
*/

public static String getClientOS(String userAgent)

String cos = "unknow os";

Pattern p = Pattern.compile(".*(Windows NT 6\\.1).*");
Matcher m = p.matcher(userAgent);
if(m.find())

cos = "Win 7";
return cos;


p = Pattern.compile(".*(Windows NT 5\\.1|Windows XP).*");
m = p.matcher(userAgent);
if(m.find())

cos = "WinXP";
return cos;


p = Pattern.compile(".*(Windows NT 5\\.2).*");
m = p.matcher(userAgent);
if(m.find())

cos = "Win2003";
return cos;


p = Pattern.compile(".*(Win2000|Windows 2000|Windows NT 5\\.0).*");
m = p.matcher(userAgent);
if(m.find())

cos = "Win2000";
return cos;


p = Pattern.compile(".*(Mac|apple|MacOS8).*");
m = p.matcher(userAgent);
if(m.find())

cos = "MAC";
return cos;


p = Pattern.compile(".*(WinNT|Windows NT).*");
m = p.matcher(userAgent);
if(m.find())

cos = "WinNT";
return cos;


p = Pattern.compile(".*Linux.*");
m = p.matcher(userAgent);
if(m.find())

cos = "Linux";
return cos;


p = Pattern.compile(".*(68k|68000).*");
m = p.matcher(userAgent);
if(m.find())

cos = "Mac68k";
return cos;


p = Pattern.compile(".*(9x 4.90|Win9(5|8)|Windows 9(5|8)|95/NT|Win32|32bit).*");
m = p.matcher(userAgent);
if(m.find())

cos = "Win9x";
return cos;


return cos;
参考技术A System.getProperty("os.arch");
可以通过数值判断
我的是64位的操作系统,返回值是:amd64
参考技术B 打开“我的电脑”然后按右键,看见属性就点下去,就可以找到追问

java程序中 需要获取客户端操作系统类型 看属性没用 有其他方法吗

追答

java基础复习

public class java3 {
static String s1="你哈";
//在类中定义的成员变量boolean默认为false
//在类中定义的成员变量int默认是0
//在类中定义的成员变量double默认是0.0
//在类中定义的成员变量char默认是空
char p;
public void des(){
System.out.println(p);

}
public static void main(String[] args) {
java3 java3=new java3();
java3.des();
String s2="我啊";
System.out.println(s1);
System.out.println(s2);
//整数
byte a=30;//8位
short b=30;//16位
int c=30;//最常用,32位
long d=30L;//后边需要加上一个L,64位
//小数
float e=30.548858f;
double f=40.54788875;//java中默认的小数类型为double类型
//字符类型
char g=‘a‘;
//boolean类型
boolean s=false;
// 可以打印出x的字符,也就是在ascii中排行97的字母打印出来
char x=97;
System.out.println(x);
char k=‘@‘;
System.out.println((int)k);
boolean n;
n=true;
System.out.println(n);

}
}

以上是关于java中如何在类中判断客户端操作系统是32位的还是64位的操作系统的主要内容,如果未能解决你的问题,请参考以下文章

如何判断Office是32位还是64位?

java内存,大端小端判断

判断在类中某个函数(也可以是变量或类型)是否存在

如何让方法在类中调用另一个方法?

32 bit 与 64 bit 程序如何识别?

PHP能在类中实例化一个类吗