Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java中如何以编程方式确定操作系统?

Java中如何以编程方式确定操作系统?

提问于 2017-12-26 03:21:05
回答 2关注 0查看 332

我想确定我的Java程序正在以编程方式运行的主机的操作系统(例如:我想能够根据我是否在Windows或Unix平台上加载不同的属性)。以100%的可靠性做到这一点最安全的方法是什么?

回答 2

akjok54

发布于 2017-12-26 03:34:08

我建议将其缓存在一个静态变量中:

代码语言:txt
AI代码解释
复制
public static final class OsUtils
代码语言:txt
AI代码解释
复制
{
代码语言:txt
AI代码解释
复制
   private static String OS = null;
代码语言:txt
AI代码解释
复制
   public static String getOsName()
代码语言:txt
AI代码解释
复制
   {
代码语言:txt
AI代码解释
复制
      if(OS == null) { OS = System.getProperty("os.name"); }
代码语言:txt
AI代码解释
复制
      return OS;
代码语言:txt
AI代码解释
复制
   }
代码语言:txt
AI代码解释
复制
   public static boolean isWindows()
代码语言:txt
AI代码解释
复制
   {
代码语言:txt
AI代码解释
复制
      return getOsName().startsWith("Windows");
代码语言:txt
AI代码解释
复制
   }
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
   public static boolean isUnix() // and so on
代码语言:txt
AI代码解释
复制
}

御姐万岁

发布于 2017-12-26 03:33:51

你可以使用:

代码语言:txt
AI代码解释
复制
System.getProperty("os.name")

PS你可能会发现这个代码有用:

代码语言:txt
AI代码解释
复制
class ShowProperties {
代码语言:txt
AI代码解释
复制
    public static void main(String[] args) {
代码语言:txt
AI代码解释
复制
        System.getProperties().list(System.out);
代码语言:txt
AI代码解释
复制
    }
代码语言:txt
AI代码解释
复制
}

它所做的只是打印出Java实现提供的所有属性。它会给你一个你可以通过属性找到Java环境的想法。:-)

和开发者交流更多问题细节吧,去 写回答
相关文章
相关问答用户
某公司 | 程序员擅长1个领域
腾讯云TDP | 先锋会员擅长2个领域
擅长2个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档