package org.nutz.lang;
import java.awt.GraphicsEnvironment;
/**
* 判断当前系统的类型
*
* @author pw
*/
public abstract class OS {
private static String sysProp(String property) {
try {
return System.getProperty(property);
}
catch (SecurityException ex) {
System.err.println("SecurityException on try find system property '" + property + "'");
return "";
}
}
public static final String OS_NAME = sysProp("os.name").toLowerCase();
public static final String JAVA_SPECIFICATION_VERSION = sysProp("java.specification.version");
public static final String JAVA_VERSION = sysProp("java.version");
static {
refreshFonts();
}
// ------------------------- 系统字体
private static String[] _fonts;
private static void refreshFonts() {
GraphicsEnvironment environment = GraphicsEnvironment.getLocalGraphicsEnvironment();
_fonts = environment.getAvailableFontFamilyNames(); // 获得系统字体
}
/**
* 返回字体列表
*
* @return 字体列表
*/
public static String[] fonts() {
return _fonts.clone();
}
/**
* 重新加载,返回字体列表
*
* @return 字体列表
*/
public static String[] fontsRefresh() {
refreshFonts();
return fonts();
}
// ------------------------- 系统判断
public static boolean isLinux() {
return OS_NAME.indexOf("linux") >= 0;
}
public static boolean isMacOS() {
return OS_NAME.indexOf("mac") >= 0;
}
public static boolean isWindows() {
return OS_NAME.indexOf("windows") >= 0;
}
public static boolean isAndroid() {
try {
Class.forName("android.Manifest");
return true;
}
catch (Throwable e) {}
return false;
}
// ------------------------- java版本
private static boolean isJavaVersion(String versionPrefix) {
return JAVA_SPECIFICATION_VERSION.startsWith(versionPrefix);
}
public static boolean isJava1_1 = isJavaVersion("1.1");
public static boolean isJava1_2 = isJavaVersion("1.2");
public static boolean isJava1_3 = isJavaVersion("1.3");
public static boolean isJava1_4 = isJavaVersion("1.4");
public static boolean isJava1_5 = isJavaVersion("1.5");
public static boolean isJava1_6 = isJavaVersion("1.6");
public static boolean isJava1_7 = isJavaVersion("1.7");
public static boolean isJava1_8 = isJavaVersion("1.8");
public static boolean isJava1_9 = isJavaVersion("9");
}