Java获取操作系统类型

Java获取操作系统完整版

系统枚举类:

public enum EPlatform {
    Any("any"),
    Linux("Linux"),
    Mac_OS("Mac OS"),
    Mac_OS_X("Mac OS X"),
    Windows("Windows"),
    OS2("OS/2"),
    Solaris("Solaris"),
    SunOS("SunOS"),
    MPEiX("MPE/iX"),
    HP_UX("HP-UX"),
    AIX("AIX"),
    OS390("OS/390"),
    FreeBSD("FreeBSD"),
    Irix("Irix"),
    Digital_Unix("Digital Unix"),
    NetWare_411("NetWare"),
    OSF1("OSF1"),
    OpenVMS("OpenVMS"),
    Others("Others");

    private EPlatform(String desc) {
        this.description = desc;
    }

    public String toString() {
        return description;
    }

    private String description;
}

获取系统类型类:

public class OSinfo {

    private static String OS = System.getProperty("os.name").toLowerCase();

    private static OSinfo _instance = new OSinfo();

    private EPlatform platform;

    private OSinfo(){}

    public static boolean isLinux(){
        return OS.indexOf("linux")>=0;
    }

    public static boolean isMacOS(){
        return OS.indexOf("mac")>=0&&OS.indexOf("os")>0&&OS.indexOf("x")<0;
    }

    public static boolean isMacOSX(){
        return OS.indexOf("mac")>=0&&OS.indexOf("os")>0&&OS.indexOf("x")>0;
    }

    public static boolean isWindows(){
        return OS.indexOf("windows")>=0;
    }

    public static boolean isOS2(){
        return OS.indexOf("os/2")>=0;
    }

    public static boolean isSolaris(){
        return OS.indexOf("solaris")>=0;
    }

    public static boolean isSunOS(){
        return OS.indexOf("sunos")>=0;
    }

    public static boolean isMPEiX(){
        return OS.indexOf("mpe/ix")>=0;
    }

    public static boolean isHPUX(){
        return OS.indexOf("hp-ux")>=0;
    }

    public static boolean isAix(){
        return OS.indexOf("aix")>=0;
    }

    public static boolean isOS390(){
        return OS.indexOf("os/390")>=0;
    }

    public static boolean isFreeBSD(){
        return OS.indexOf("freebsd")>=0;
    }

    public static boolean isIrix(){
        return OS.indexOf("irix")>=0;
    }

    public static boolean isDigitalUnix(){
        return OS.indexOf("digital")>=0&&OS.indexOf("unix")>0;
    }

    public static boolean isNetWare(){
        return OS.indexOf("netware")>=0;
    }

    public static boolean isOSF1(){
        return OS.indexOf("osf1")>=0;
    }

    public static boolean isOpenVMS(){
        return OS.indexOf("openvms")>=0;
    }

    /**
     * 获取操作系统名字
     * @return 操作系统名
     */
    public static EPlatform getOSname(){
        if(isAix()){
            _instance.platform = EPlatform.AIX;
        }else if (isDigitalUnix()) {
            _instance.platform = EPlatform.Digital_Unix;
        }else if (isFreeBSD()) {
            _instance.platform = EPlatform.FreeBSD;
        }else if (isHPUX()) {
            _instance.platform = EPlatform.HP_UX;
        }else if (isIrix()) {
            _instance.platform = EPlatform.Irix;
        }else if (isLinux()) {
            _instance.platform = EPlatform.Linux;
        }else if (isMacOS()) {
            _instance.platform = EPlatform.Mac_OS;
        }else if (isMacOSX()) {
            _instance.platform = EPlatform.Mac_OS_X;
        }else if (isMPEiX()) {
            _instance.platform = EPlatform.MPEiX;
        }else if (isNetWare()) {
            _instance.platform = EPlatform.NetWare_411;
        }else if (isOpenVMS()) {
            _instance.platform = EPlatform.OpenVMS;
        }else if (isOS2()) {
            _instance.platform = EPlatform.OS2;
        }else if (isOS390()) {
            _instance.platform = EPlatform.OS390;
        }else if (isOSF1()) {
            _instance.platform = EPlatform.OSF1;
        }else if (isSolaris()) {
            _instance.platform = EPlatform.Solaris;
        }else if (isSunOS()) {
            _instance.platform = EPlatform.SunOS;
        }else if (isWindows()) {
            _instance.platform = EPlatform.Windows;
        }else{
            _instance.platform = EPlatform.Others;
        }
        return _instance.platform;
    }
    /**
     * @param args
     */
    public static void main(String[] args) {
        System.out.println(OSinfo.getOSname());// 获取系统类型
        System.out.println(OSinfo.isWindows());// 判断是否为windows系统 
    }

}

测试结果:

在这里插入图片描述

转载自:https://blog.csdn.net/fangchao2011/article/details/88785637

如何写周报

写周报之前需要认清

周报意味着总结
  • 写清楚过去一周做了什么,尤其是
  • 过去一周,在核心业务上做了什么
  • 周报的重点在于描述,描述你深处的环境,而描述需要:思考
周报意味着思考
  • 你需要有一个完整的思考:业务,技术,团队
  • 时间线上的思考:过去,现在,将来
  • 问题线上的思考:问题,快速/简单解决,完整解决
  • 优先级上的思考:有限的资源如何应对无限的事情?时间差
你的思考范围
  • 业务的思考

公司/团队整体面对的业务:应该是什么样的,现在是什么样的,差距在哪里

合作方/业务方/使用方是什么样的,他们提出了什么样的要求,面临什么样的问题

竞对是什么样的,与我们相比有什么优势,如何快速追平

兄弟部门是什么样的,他们到了什么阶段,遇到了什么问题

  • 技术的思考

我们的系统是否具有充分的健壮性和扩展性

瓶颈在哪里,性能瓶颈还是功能瓶颈

排查问题是否足够迅速,覆盖场景是否足够全面

系统的各个层面的治理是否充分

  • 团队的思考

团队现在遇到的问题或者困境是什么,如何解决

团队是否积极向上,是否具备自我良性循环的机制?

  • 完整的思考

考虑方方面面

a. 覆盖:业务,技术,团队

b. 覆盖:正向,逆向Icon

不光要考虑做一件事情会怎么样,还要考虑不做会怎么样

c. 覆盖:公司决策,团队分解,个人执行

开始写周报

汇报周期
  • 一般来说是一周,不然为什么要叫周报?
现阶段工作的核心指标
  • 紧跟OKR,是OKR的延伸或者分解

是否可以超出OKR的范围?

当然可以!但是,这往往说明OKR需要调整,最终要回归到OKR

  • 跟OKR一样,核心工作是大事,不是鸡毛蒜皮的小事
  • 用数字衡量!有时间约束!有场景范围!缺一不可
核心指标本周完成进度
  • 在核心指标上的进度
  • 有里程碑,有衡量方法之后的进度,不能是拍脑袋。拍脑袋的进度写在“本周完成工作事项”里面
  • 谨慎填写,可以没有核心进度
本周完成工作事项
  • 可以写的随意一些,日常的工作都可以写上来
  • 大部分时间,主要在写这个
下周工作计划
  • 很重要,这才是周报的精髓:自我的承诺
  • 核心进度没有,惭愧不惭愧?本周完成工作没几项,丢人不丢人?请务必向前看,做好下周的计划
  • 自我承诺要尽量完成,所以不要承诺很简单的事情,因为没有意义;也不要承诺和很难的事情,因为完成不了
遇到的问题
  • 个人遇到的问题,困惑;如果有解决方案,那么同时也列出来;如果没有,也不妨写出来
  • 团队遇到的问题,同样的,最好有解决方案

几个关键字

完整
  • 完整性是一切的基石
  • 换一种说法是:保持开阔的视野和头脑
量化
  • 分解和量化,是必要的步骤
思考
  • 思考是一切的核心
  • 行动步骤是思考出来的,不是别人指挥和命令的
承诺
  • 计划和承诺是实现的方式

如何写日报

写日报的意义

对自己的意义
  • 梳理思路:对自己思路的整理
  • 总结思考:对当前工作的总结,同时也是反思“如果再做一次能不能做的更好”
  • 未来预期:对未来(接下来一天或多天)工作的展望

预期很重要

没有预期很容易造成节奏缓慢,目的性不强等问题

在开始工作之前有合理的预期,是达成目标的开始

对组织的意义
  • 成员间相互了解
  • 相互了解对方做的事
  • 相互监督和帮助

开始写日报

思考并开始
  • 给自己15分钟时间

5分钟思考,10分钟撰写并修改

不要花费过长的时间,日报15分钟足够了

日报毕竟只是一个简洁的总结,如果针对某一个事项或者问题有深入的分析,可以单独wiki中填写,在日报中填写链接

  • 量化思考

少用/不用形容词

多用数字,从数字中明确结果和期望

当前的工作
  • 手上有几件事,整体期望是啥样

分清楚主次

哪些事情是主要工作,哪些工作是临时工作和突发工作(比如排查问题)

哪些事情投入了多少精力,占用了多少时间

  • 每件事情的进度,以及是否满足期望

计划当日完成哪些工作,什么进度

实际当日完成哪些工作,什么进度

如果进度提前了,为什么

如果进度落后了,为什么,怎么解决(能不能追回来)

  • 事情的结果和分析

结果是什么样?

结果之后是否要需要关心?(功能上线就结束了么?)

如何分析结果之后的效果?(线上的使用率,正确率,等等)

遗留工作/接下来的计划
  • 和以上很像

几件事情,分别是什么,整体期望是啥样

接下来一个/几个工作日的期望是啥样,如何量化说明

遇到的问题

把自己遇到的问题分享出来,当然也不是什么问题都需要分享

a. 有普遍性的,别人也会出现的问题

b. 比较严重的问题,有一定深度的问题,可以采用贴wiki的方式

c. 没有解决/不好解决/解决成本比较高的问题

几个关键字

预期

首先得有“这个事情应该什么样”

在这个基础上谈“怎么做”

最后总结“做到了什么程度”

量化

尝试量化工作,并用量化的结果衡量进度

避免宽泛的形容词:完成一小部分,完成大部分,基本完成

避免无意义的量化:(第一天)完成90%,(第二天)实现95%

主次

弄清楚哪些是主要工作(需要结合OKR,当前业务重点,等等),哪些是临时/突然工作

分析清楚两者的占比

是否真的在主要工作上投入了恰当的精力?

是否在非主要工作上过多的投入了精力?

思考

发现问题,解决问题

不能麻木的看见问题也放着不管

有问题,思考,寻找解决方案,然后解决