java准确的获取操作系统的名称

简介: <p>程序员都很懒,你懂的!</p> <p>在我们日常开发中,经常需要判断操作系统的版本或者系统的名字等等。这就需要我们用到jdk默认带的一些属性了。这里我对各个版本的系统都做了区分,分别能判断mac,linux,window等大众的操作系统名称。直接看代码(OSUtil.java):</p> <pre code_snippet_id="305911" snippet_file_nam

程序员都很懒,你懂的!

在我们日常开发中,经常需要判断操作系统的版本或者系统的名字等等。这就需要我们用到jdk默认带的一些属性了。这里我对各个版本的系统都做了区分,分别能判断mac,linux,window等大众的操作系统名称。直接看代码(OSUtil.java):

package com.herman.util;
/**
 * @see 获取操作系统名称
 * @author Herman.Xiong
 * @date 2014年4月22日 13:36:14
 * @version V1.0
 * @since jdk 1.6
 */
public class OSUtil {
	private static final boolean osIsMacOsX;
	private static final boolean osIsWindows;
	private static final boolean osIsWindowsXP;
	private static final boolean osIsWindows2003;
	private static final boolean osIsWindowsVista;
	private static final boolean osIsLinux;
	private static final boolean osIsWindowsWin7;
	private static final boolean osIsWindowsWin8;

	static {
		String os = System.getProperty("os.name");
		if (os != null)
			os = os.toLowerCase();
		osIsMacOsX = "mac os x".equals(os);
		osIsWindows = os != null && os.indexOf("windows") != -1;
		osIsWindowsXP = "windows xp".equals(os);
		osIsWindows2003 = "windows 2003".equals(os);
		osIsWindowsVista = "windows vista".equals(os);
		osIsLinux = os != null && os.indexOf("linux") != -1;
		osIsWindowsWin7 = os !=null && os.indexOf("windows 7") != -1;
		osIsWindowsWin8 = os !=null && os.indexOf("windows 8") != -1;
	}

	public static boolean isMacOSX() {
		return osIsMacOsX;
	}

	public static boolean isWindows() {
		return osIsWindows;
	}

	public static boolean isWindowsXP() {
		return osIsWindowsXP;
	}

	public static boolean isWindows2003() {
		return osIsWindows2003;
	}

	public static boolean isWindowsVista() {
		return osIsWindowsVista;
	}

	public static boolean isLinux() {
		return osIsLinux;
	}

	public static boolean IsWindowsWin7(){
		return osIsWindowsWin7;
	}
	
	public static boolean IsWindowsWin8(){
		return osIsWindowsWin8;
	}
}

精华都在上面。下面我们用各种jdk版本和各种操作系统进行测试。测试代码(TestOS.java):

package com.herman.test;

import com.herman.util.OSUtil;
/**
 * @see 测试操作系统类型
 * @author Herman.Xiong
 * @date 2014年4月22日 13:40:06
 * @version V1.0
 * @since jdk 1.6
 */
public class TestOs {
	
	public static String getVersion(){
		return "当前版本 V1.0 2014年4月22日 11:57:20";
	} 
	public static void main(String[] args) {
		System.out.println(System.getProperty("os.name"));
		System.out.println(getVersion());
		System.out.println("当前系统为Mac系统:"+OSUtil.isMacOSX());
		System.out.println("当前系统为Linux系统:"+OSUtil.isLinux());
		System.out.println("当前系统为Window系统:"+OSUtil.isWindows());
		System.out.println("当前系统为Windows2003系统:"+OSUtil.isWindows2003());
		System.out.println("当前系统为WindowsVista系统:"+OSUtil.isWindowsVista());
		System.out.println("当前系统为WindowsXP系统:"+OSUtil.isWindowsXP());
		/*
		 * 注意:如果使用的1.6的jdk,那么对于win7和win8系统都显示的“Windows Vista”
		 * 如果要正确判断win7还是win8系统,则需要使用jdk1.7
		 * android系统需要稍微改动
		 */
		System.out.println("当前系统为Windows7系统:"+OSUtil.IsWindowsWin7());
		System.out.println("当前系统为Windows8系统:"+OSUtil.IsWindowsWin8());
	}
}

运行效果截图:

源代码下载地址http://download.csdn.net/detail/xmt1139057136/7232817

欢迎大家关注我的博客,或加QQ群 135430763进行相互学习。

目录
相关文章
|
分布式计算 Hadoop Java
hadoop java 创建文件夹 弹出窗口填写文件夹名称
hadoop java 创建文件夹 弹出窗口填写文件夹名称
90 0
|
Kubernetes Java Linux
Linux|操作系统|Error: Could not create the Java Virtual Machine 报错的解决思路
Linux|操作系统|Error: Could not create the Java Virtual Machine 报错的解决思路
2807 0
|
11月前
|
设计模式 算法 安全
实时操作系统(RTOS)深度解析及Java实现初探
【10月更文挑战第22天】实时操作系统(RTOS,Real-Time Operating System)是一种能够在严格的时间限制内响应外部事件并处理任务的操作系统。它以其高效、高速、可靠的特点,广泛应用于工业自动化、航空航天、医疗设备、交通控制等领域。本文将深入浅出地介绍RTOS的相关概念、底层原理、作用与功能,并探讨在Java中实现实时系统的方法。
446 1
|
10月前
|
JSON Java 程序员
Java|如何用一个统一结构接收成员名称不固定的数据
本文介绍了一种 Java 中如何用一个统一结构接收成员名称不固定的数据的方法。
113 3
|
消息中间件 算法 Java
深入浅出操作系统:进程管理的艺术掌握Java中的异常处理机制
【8月更文挑战第30天】在数字世界的舞台上,操作系统扮演着导演的角色,精心安排着每一个进程的表演。本文将揭开进程管理的神秘面纱,从进程的诞生到终结,探究它们如何在操作系统的指挥下和谐共舞。通过生动的比喻和直观的代码示例,我们将一同走进操作系统的核心,理解进程调度、同步与通信的内在机制,以及它们对计算生态的重要性。让我们跟随代码的节奏,一起感受操作系统的魅力吧!
|
存储 安全 Java
深入理解操作系统:从用户空间到内核空间的旅程深入浅出Java异常处理机制
【8月更文挑战第28天】在数字世界的海洋中,操作系统是承载软件与硬件沟通的巨轮。本文将揭开操作系统神秘的面纱,通过一次思维的航行,带领读者从应用程序的用户空间出发,穿越系统调用的大门,深入内核空间的心脏。我们将探索进程管理、内存分配、文件系统等核心概念,并借助代码示例,揭示操作系统背后的魔法。准备好了吗?让我们启航,去发现那些隐藏在日常计算活动背后的秘密。 【8月更文挑战第28天】在Java编程世界中,异常处理就像是我们生活中的急救包。它不仅保护程序不因意外而崩溃,还确保了代码的健壮性和可靠性。本文将通过简洁明了的语言和生动的比喻,带你了解Java异常处理的奥秘,从基本的try-catch语
java中获取当前执行线程的名称
这篇文章介绍了两种在Java中获取当前执行线程名称的方法:使用`Thread`类的`getName`方法直接获取本线程的名称,以及使用`Thread.currentThread()`方法获取当前执行对象的引用再调用`getName`方法。
|
IDE Oracle Java
Java 是一种跨平台的编程语言,可以在各种操作系统上运行。
Java 是一种跨平台的编程语言,可以在各种操作系统上运行。
|
安全 Java 程序员
深入理解Java并发编程:从基础到高级深入理解操作系统中的进程调度策略
【5月更文挑战第29天】 Java并发编程是Java开发中不可忽视的一部分,它涉及到多线程、同步、锁等概念。本文将带你从Java并发编程的基础概念出发,逐步深入到高级应用,让你全面掌握Java并发编程的技巧。
|
安全 Java 开发者
深入理解Java并发编程:线程安全与性能优化移动应用开发的未来:跨平台框架与原生操作系统的融合
【5月更文挑战第29天】在Java开发中,并发编程是一个重要的议题。随着多核处理器的普及,如何充分利用多核资源,提高程序的执行效率,同时保证数据的安全性和一致性,成为开发者必须面对的挑战。本文将从线程安全的基本概念出发,探讨Java中的线程安全问题,并介绍一些常见的解决方案,如同步机制、锁优化等。最后,我们将通过实例分析,展示如何在保证线程安全的前提下,进行性能优化。

推荐镜像

更多