Java 根据环境属性区分不同操作系统

来源:互联网 发布:深圳淘宝网店培训 编辑:程序博客网 时间:2024/05/21 09:32

Java 根据环境属性区分不同操作系统

之前项目需要配置下载文件的路径,本机系统是win 10 ,而服务器系统是CentOS。配置默认下载路径(非项目内相对路径),就会出现问题。windows 路径是由盘符打头,而 CentOS 是由反斜杠 ‘/’开头,如何区分不同的系统?

根据环境属性获取具体的系统名,根据系统名判断。

    String osName = System.getProperty("os.name");

或者

    String osName = System.getProperties().getProperty("os.name");

使用的是 JDK 自带的方法, java.lang.System类的getProperties()方法。该方法的返回值是一个 Properties 对象,我们可以使用不同的属性名获取不同含义的环境属性值。

key value 含义 java.version Java Runtime Environment version JRE 运行环境版本 java.vendor Java Runtime Environment vendor JRE 供应商 java.vendor.url Java vendor URL Java 供应商网址 java.home Java installation directory java 安装目录 java.vm.specification.version Java Virtual Machine specification version java 虚拟机规格版本 java.vm.specification.vendor Java Virtual Machine specification vendor java 虚拟机规格供应商 java.vm.specification.name Java Virtual Machine specification name java 虚拟机详细名称 java.vm.version Java Virtual Machine implementation version java 虚拟机实现版本 java.vm.vendor Java Virtual Machine implementation vendor java 虚拟机实现供应商 java.vm.name Java Virtual Machine implementation name java 虚拟机实现名称 java.specification.version Java Runtime Environment specification version JRE 规格版本 java.specification.vendor Java Runtime Environment specification vendor JRE 规格供应商 java.specification.name Java Runtime Environment specification name JRE 规格名称 java.class.version Java class format version number java 类规格版本号 java.class.path Java class path java 类路径 java.library.path List of paths to search when loading libraries 加载库时搜索的路径列表 java.io.tmpdir Default temp file path 默认的临时文件路径 java.compiler Name of JIT compiler to use java 编译器名称 java.ext.dirs Path of extension directory or directories 扩展路径的文件夹 os.name Operating system name 操作系统名称 os.arch Operating system architecture 操作系统架构 os.version Operating system version 操作系统版本 file.separator File separator (“/” on UNIX) 文件分隔符 path.separator Path separator (“:” on UNIX) 路径分隔符 line.separator Line separator (“\n” on UNIX) 换行符 user.name User’s account name 用户名 user.home User’s home directory 用户主目录 user.dir User’s current working directory 当前目录

更多的属性可以遍历 Properties 变量,打印出 key : value 键值对。

 Set<Entry<Object, Object>> sets = System.getProperties().entrySet();     for(Entry<Object, Object> entry : sets){        System.out.println(entry.getKey()+" : "+entry.getValue());        }

最后可以进行简单的封装

public class SystemRecognize {    public static Properties props;    static{        props = System.getProperties();    }    /**     * 获取系统的名称     * @return     */    public static String getOSName(){        return props.getProperty("os.name");    }    /**     * 获取系统的架构     * @return     */    public static String getOSArch(){        return props.getProperty("os.arch");    }    /**     * 获取系统的文件分隔符     * @return     */    public static String getFileSeparator(){        return props.getProperty("file.separator");    }    /**     * 获取系统的属性值     * @return     */    public static String getValue(String propertyName){        return props.getProperty(propertyName);        // return System.getProperty(propertyName);    }  }
0 0
原创粉丝点击