package org.springside.modules.utils.base;
import java.io.File;
import java.lang.management.ManagementFactory;
import org.apache.commons.lang3.SystemUtils;
/**
* 关于系统设定,平台信息的变量
*
* via Common Lang
*
* @author calvin
*/
public class Platforms {
// 文件路径分隔符
public static final String FILE_PATH_SEPARATOR = File.separator;
public static final char FILE_PATH_SEPARATOR_CHAR = File.separatorChar;
public static final char WINDOWS_FILE_PATH_SEPARATOR_CHAR = '\\';
public static final char LINUX_FILE_PATH_SEPARATOR_CHAR = '/';
// ClassPath分隔符
public static final String CLASS_PATH_SEPARATOR = File.pathSeparator;
public static final char CLASS_PATH_SEPARATOR_CHAR = File.pathSeparatorChar;
// 换行符, JDK7可使用System.lineSeparator()
public static final String LINE_SEPARATOR = SystemUtils.LINE_SEPARATOR;
// 临时目录
public static final String TMP_DIR = SystemUtils.JAVA_IO_TMPDIR;
// 当前应用的工作目录
public static final String WORKING_DIR = SystemUtils.USER_DIR;
// 用户 HOME目录
public static final String USER_HOME = SystemUtils.USER_HOME;
// Java HOME目录
public static final String JAVA_HOME = SystemUtils.JAVA_HOME;
// Java版本
public static final String JAVA_SPECIFICATION_VERSION = SystemUtils.JAVA_SPECIFICATION_VERSION; // e.g. 1.8
public static final String JAVA_VERSION = SystemUtils.JAVA_VERSION; // e.g. 1.8.0_102
public static final boolean IS_JAVA6 = SystemUtils.IS_JAVA_1_6;
public static final boolean IS_JAVA7 = SystemUtils.IS_JAVA_1_7;
public static final boolean IS_JAVA8 = SystemUtils.IS_JAVA_1_8;
public static final boolean IS_ATLEASET_JAVA6 = IS_JAVA6 || IS_JAVA7 || IS_JAVA8;
public static final boolean IS_ATLEASET_JAVA7 = IS_JAVA7 || IS_JAVA8;
public static final boolean IS_ATLEASET_JAVA8 = IS_JAVA8;
// 操作系统类型及版本
public static final String OS_NAME = SystemUtils.OS_NAME;
public static final String OS_VERSION = SystemUtils.OS_VERSION;
public static final String OS_ARCH = SystemUtils.OS_ARCH; // e.g. x86_64
public static final boolean IS_LINUX = SystemUtils.IS_OS_LINUX;
public static final boolean IS_UNIX = SystemUtils.IS_OS_UNIX;
public static final boolean IS_WINDOWS = SystemUtils.IS_OS_WINDOWS;
/**
* 获得当前进程的PID
*
* 当失败时返回-1
*/
public static int getPid() {
// format: "pid@hostname"
String name = ManagementFactory.getRuntimeMXBean().getName();
String[] split = name.split("@");
if (split.length != 2) {
return -1;
}
try {
return Integer.parseInt(split[0]);
} catch (Exception e) {
return -1;
}
}
}