`
kanpiaoxue
  • 浏览: 1789343 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

java获得进程的pid、以及有用的工具类ManagementFactory

 
阅读更多

 

    // 参考来源:org.springframework.boot.system.ApplicationPid.java#getPid()
    public static String getPid() {
        try {
            String jvmName = ManagementFactory.getRuntimeMXBean().getName();
            System.out.println("jvmName : " + jvmName);
            return jvmName.split("@")[0];
        } catch (Throwable ex) {
            ex.printStackTrace();
            return null;
        }
    }

 

 

    public static void test05() throws Exception {
        System.out.println("pid : " + getPid());

        System.out.println(StringUtils.center("CompilationMXBean", 100, "="));
        CompilationMXBean compilationMXBean = ManagementFactory.getCompilationMXBean();
        System.out.println(compilationMXBean.getName());
        System.out.println(compilationMXBean.getObjectName());
        System.out.println(compilationMXBean.getTotalCompilationTime());

        System.out.println(StringUtils.center("OperatingSystemMXBean", 100, "="));
        OperatingSystemMXBean operatingSystemMXBean = ManagementFactory.getOperatingSystemMXBean();
        System.out.println(operatingSystemMXBean.getObjectName());
        System.out.println(operatingSystemMXBean.getName());
        System.out.println(operatingSystemMXBean.getAvailableProcessors());
        System.out.println(operatingSystemMXBean.getArch());
        System.out.println(operatingSystemMXBean.getSystemLoadAverage());
        System.out.println(operatingSystemMXBean.getVersion());

        System.out.println(StringUtils.center("RuntimeMXBean", 100, "="));
        RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean();
        System.out.println(runtimeMXBean.getObjectName());
        System.out.println(runtimeMXBean.getName());
        System.out.println(runtimeMXBean.getClassPath());
        System.out.println(runtimeMXBean.getUptime());
        System.out.println(runtimeMXBean.getVmName());
        System.out.println(runtimeMXBean.getVmVersion());
        System.out.println(runtimeMXBean.getVmVendor());
        System.out.println(runtimeMXBean.getInputArguments());
        System.out.println(runtimeMXBean.getBootClassPath());
        System.out.println(runtimeMXBean.getManagementSpecVersion());
        System.out.println(runtimeMXBean.getSpecName());
        System.out.println(runtimeMXBean.getSpecVersion());

        System.out.println(StringUtils.center("MemoryMXBean", 100, "="));
        MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean();
        System.out.println(memoryMXBean.getObjectName());
        System.out.println(memoryMXBean.getHeapMemoryUsage());
        System.out.println(memoryMXBean.getNonHeapMemoryUsage());
        System.out.println(memoryMXBean.getObjectPendingFinalizationCount());

        System.out.println(StringUtils.center("ClassLoadingMXBean", 100, "="));
        ClassLoadingMXBean classLoadingMXBean = ManagementFactory.getClassLoadingMXBean();
        System.out.println(classLoadingMXBean.getObjectName());
        System.out.println(classLoadingMXBean.getTotalLoadedClassCount());
        System.out.println(classLoadingMXBean.getUnloadedClassCount());

        System.out.println(StringUtils.center("ThreadMXBean", 100, "="));
        ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
        System.out.println(threadMXBean.getObjectName());
        System.out.println(threadMXBean.getThreadInfo(Thread.currentThread().getId()));
        Arrays.stream(threadMXBean.getAllThreadIds()).forEach(id -> {
            System.out.println(String.format("id:%s, info:%s", id, threadMXBean.getThreadInfo(id)));
        });

        System.out.println(StringUtils.center("JavaVersion", 100, "="));
        String version = System.getProperty("java.version");
        System.out.println("java.version:" + version);
    }

 

 

分享到:
评论

相关推荐

    Java如何获取当前进程ID以及所有Java进程的进程ID

    Java如何获取当前进程ID以及所有Java进程的进程ID Java 获取当前进程ID是指在 Java 程序中获取当前进程的 ID 号码,而获取所有 Java 进程的进程 ID 则是指获取所有当前正在运行的 Java 进程的 ID 号码。这些信息...

    java 查看JVM中所有的线程的活动状况

    在命令行中运行`jstack <pid>`(pid是Java进程的ID),即可查看该进程的线程状态。 总结来说,Java提供了多种方式来查看JVM中的线程活动状况,无论是通过编程还是使用命令行工具,都能帮助开发者诊断和优化多线程...

    获得进程CPU信息的代码集合

    以下代码展示了如何获取当前Java进程的CPU使用率和内存占用: ```java import java.lang.management.ManagementFactory; import java.lang.management.MemoryMXBean; import java.lang.management.MemoryUsage; ...

    得到一个进程的状态,比如:进程是否没有响应

    在Java中,`java.lang.management`包提供了`ManagementFactory`类,可以获取进程和系统的各种管理信息。例如,`ProcessMXBean`接口的`getProcessCount()`方法可以获取当前运行的进程数,而`getProcessCpuLoad()`则...

    判断进程是否存在

    Java提供了一个名为`java.lang.management.ManagementFactory`的类,可以获取操作系统的进程信息。可以使用`OperatingSystemMXBean`的`getProcessId()`方法,结合`RuntimeMXBean`来查找目标进程。 5. **C#中的进程...

    读取机子上的进程

    在Java中,`java.lang.management.ManagementFactory`类提供了获取进程信息的方法,如`ProcessMXBean`接口: ```java import java.lang.management.ManagementFactory; import java.lang.management.ProcessMXBean;...

    取进程命令行参数

    Java中,可以使用`ManagementFactory`类的`RuntimeMXBean`和`getInputArguments()`方法获取当前进程的命令行参数。如果需要获取其他进程的参数,可能需要借助于操作系统级别的API。 对于C#,可以使用`System....

    获取系统目前的程序进程

    - Java:使用`java.lang.management.ManagementFactory`类的`getProcessList()`方法。 - C#/.NET:使用`System.Diagnostics.Process.GetProcesses()`方法。 - C++:Windows下可利用`CreateToolhelp32Snapshot`和`...

    获取正在运行进程的实例

    "获取正在运行进程的实例"这一主题涉及到如何在操作系统层面获取进程信息,以及如何计算这些进程所占用的内存资源。在此,我们将深入探讨这个话题,并提供相关的编程实现。 进程是操作系统中的一个基本概念,它代表...

    自动删除进程

    在编程中,Python有`psutil`库,C#有`System.Diagnostics.Process`类,Java有`ManagementFactory`等,都可以方便地进行进程查询。 2. **删除进程**:终止进程在不同系统中的实现方法有所不同。在Windows中,`...

    计算机软件-商业源码-实例62 枚举系统正在运行的程序.zip

    对于Java开发者,可以使用`java.lang.management`包中的`ManagementFactory`类来获取进程信息。例如,`ManagementFactory.getRuntimeMXBean().getInputArguments()`可以获取JVM的启动参数,而获取系统进程信息则需要...

    84枚举系统正在运行的程序(包括隐含的).rar_枚举系统正

    而在Java中,可以使用`ManagementFactory`类的`getRunningProcessList`方法。 对于隐含的进程,它们可能是指那些不显示在任务管理器中的进程,通常是服务或者后台程序。这些进程可能不会在用户的桌面界面中显示窗口...

    KillAll:小口袋版Killall命令

    "KillAll:小口袋版Killall命令"是一个针对Java环境的轻量级工具,它旨在模仿Linux系统中的killall命令功能。...通过深入研究其源代码,我们可以学习到更多关于Java进程管理、操作系统交互以及命令行工具设计的知识。

Global site tag (gtag.js) - Google Analytics