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

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

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

根据环境属性获取具体的系统名,根据系统名判断。
String osName = System.getProperty("os.name");
1
或者
String osName = System.getProperties().getProperty("os.name");
1
使用的是 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());
}
1
2
3
4
最后可以进行简单的封装

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);
}

}

转载于:https://blog.51cto.com/12267285/2139459

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值