`
MouseLearnJava
  • 浏览: 466211 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

使用RuntimeMXBean获取PID

    博客分类:
  • Java
阅读更多

java.lang.management.RuntimeMXBean是Java 虚拟机的运行时系统的管理接口。使用它可以获取正在运行的 Java 虚拟机等信息,包括获取PID。

以下就是一个获取PID的例子:

import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;
import java.util.logging.Logger;

public class RuntimeMXBeanUtil {
	
	private static final Logger logger = MyLoggerUtil.setLoggerHanlder(Logger.getLogger("RuntimeMXBeanUtil"));
	
	private static final RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean();
	
	public static void main(String[] args) {
		
		logger.info("BootClassPart-->\n"+runtimeMXBean.getBootClassPath());
		//logger.info("ManagerSpecVersion is "+runtimeMXBean.getManagementSpecVersion());
		//logger.info("ClassPath is "+runtimeMXBean.getClassPath());
		//logger.info("Library path is "+runtimeMXBean.getLibraryPath());
		
		/**
		 * Populate the process ID
		 */
		logger.info("The PID is "+populateProcessID());
		
		logger.info("Spec Name is "+runtimeMXBean.getSpecName());
		logger.info("Spec Vendor is "+runtimeMXBean.getSpecVendor());
		//logger.info("Spec Version is "+runtimeMXBean.getSpecVersion());
		//logger.info("Start Time is "+runtimeMXBean.getStartTime());
		//logger.info("Start Time is "+runtimeMXBean.getStartTime());
		//logger.info("Update Time is "+runtimeMXBean.getUptime());
		
		logger.info("VM Name is "+runtimeMXBean.getVmName());
		
		logger.info("VM Vendor is "+runtimeMXBean.getVmVendor());
		logger.info("VM Version is "+runtimeMXBean.getVmVersion());
		
		/**
		 * Get System Properties
		 */
		logger.info("System Properties--> "+runtimeMXBean.getSystemProperties());
		
		//logger.info("Is boot class path supported? "+runtimeMXBean.isBootClassPathSupported());
		//System.getProperties();
		//what is the difference between ManagementFactory.getRuntimeMXBean().getSystemProperties() and System.getProperties() ?
		//The difference is you can use RuntimeMXBean from a remote JVM to obtain its system properties.
		
		//System.out.println(runtimeMXBean.getSystemProperties().size() == System.getProperties().size());
		
		javax.swing.JOptionPane.showConfirmDialog((java.awt.Component) null,
				"The PID is " +populateProcessID() , null, javax.swing.JOptionPane.DEFAULT_OPTION);
	}
	
	private static String populateProcessID()
	{	
		/*
		 * runtimeMXBean.getName()取得的值包括两个部分:PID和hostname,两者用@连接。
		 */
		RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean();
		return runtimeMXBean.getName().split("@")[0];
	}
}


控制台输出信息如下:


在任务管理器中查找获取的PID。



  • 大小: 68.2 KB
  • 大小: 68.5 KB
0
6
分享到:
评论

相关推荐

    Java获取操作系统信息

    Java的`java.lang.System`类也提供了获取操作系统信息的方法,例如`getProperty("os.name")`、`getProperty("os.version")`和`getProperty("os.arch")`,这些方法返回的操作系统信息与`RuntimeMXBean`中的对应方法...

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

    在上面的代码中,我们使用 ManagementFactory 的 getRuntimeMXBean() 方法获取了当前 Java 进程的 RuntimeMXBean 对象,然后使用该对象的 getName() 方法获取了当前进程的名称,该名称以“Pid@HostName”形式出现,...

    获取windows系统登录用户名

    总结来说,获取Windows系统登录用户名是一项基础但重要的任务,开发者可以通过多种方式实现,包括使用命令行工具或在各种编程语言中调用相应的API。理解这些方法可以帮助我们更好地管理和调试与用户身份相关的应用...

    取进程命令行参数

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

    java 获取程序运行环境的信息

    - 使用`java.lang.RuntimeMXBean`类可以获取JVM的启动参数、运行时间、内存信息等。例如,`ManagementFactory.getRuntimeMXBean()`方法返回一个`RuntimeMXBean`实例,通过该实例可以获取到JVM启动时的命令行参数,`...

    JAVA获取操作系统信息

    Java提供了一个内置的`java.lang.RuntimeMXBean`类,以及`java.lang.management`包下的其他类,用于获取关于操作系统的详细信息。以下是一些关键知识点: 1. **RuntimeMXBean**: 这是Java运行时系统的管理接口,...

    java利用ManagementFactory获取tomcat的一些信息例子

    3. **深入监控**: 除了基础信息外,还可以获取更详细的统计,如请求处理时间、线程池状态、内存使用情况等。Tomcat还提供了一些自定义MBeans,允许监控特定的组件,如连接器、部署器和全局请求处理器。 4. **可视化...

    Java获取自身运行相关信息.rar

    通过`java.lang.RuntimeMXBean`接口的`getName()`方法可以获取到JVM的名称,这个名称通常包含了JVM的实现和版本信息。 2. **虚拟机启动目录(JVM Boot Directory)**: 虚拟机启动目录是指Java安装的根目录。这个...

    基于(siger)开发的SpringBoot项目,java获取服务器信息.zip

    1. **操作系统信息**:通过`java.lang.RuntimeMXBean`和`java.lang.management.OperatingSystemMXBean`接口,可以获取到操作系统的名称、版本、架构等信息。 2. **JVM信息**:使用`java.lang.Runtime`类可以获取JVM...

    TO-GET-THE-LIST-OF-PROGRESS-.rar_progress

    在Java中,`java.lang.management.ManagementFactory`类提供了获取进程信息的接口,如`OperatingSystemMXBean`和`RuntimeMXBean`,可以获取到JVM及其宿主操作系统的相关信息。对于Node.js环境,可以借助`child_...

    判断进程是否存在

    可以使用`OperatingSystemMXBean`的`getProcessId()`方法,结合`RuntimeMXBean`来查找目标进程。 5. **C#中的进程判断** C#中的`System.Diagnostics`命名空间提供了`Process`类,通过`Process.GetProcessesByName...

    java读取CPU内存信息

    对于CPU利用率的获取,Java的标准库并不直接提供这个功能,但可以通过`java.lang.management.ThreadMXBean`获取线程的信息,然后计算CPU使用率。`ThreadMXBean`提供了`getThreadCpuTime()`和`getTotalThreadCount()`...

    System.zip

    3. **JVM信息监控**:`java.lang.management.RuntimeMXBean`和`java.lang.management.OperatingSystemMXBean`接口提供了关于JVM和操作系统的详细信息,如JVM启动时间、运行时参数、操作系统版本、CPU使用率等。...

    Java SE 6 中监视和诊断性能问题1

    例如,清单1展示了如何获取`RuntimeMXBean`并检索`VmVendor`属性。 另一方面,如果需要监控远程JVM,可以使用MBeanServer接口,如清单2所示。这通常涉及建立JMX RMI连接,然后通过`MBeanServerConnection`对象来...

    基于Java的实例源码-Visualvm 基于JAVA的CPU硬件资源管理器源程序.zip

    这些数据的获取依赖于`OperatingSystemMXBean`和`RuntimeMXBean`,通过这些API,开发者可以实现自定义的性能监控。 7. **插件系统** VisualVM支持插件扩展,其源码中包含了插件系统的实现。理解这部分代码有助于...

    http服务器文件自动上传

    这通常需要借助Java的`java.lang.management.ManagementFactory`和`java.lang.management.RuntimeMXBean`来获取JVM的启动命令,然后结合第三方工具(如Apache Commons Daemon的jsvc或winsw)将其包装成服务。...

    java工具包

    `java.io.File`类是IO操作的基础,可以用来创建、删除、重命名文件和目录,以及获取文件属性。同时,`java.nio`包提供了更高级的非阻塞I/O操作,如通道(Channel)和缓冲区(Buffer)。 2. **进度条显示**: 进度条是...

    api的文档

    - `RuntimeMXBean`: 运行时管理Bean。 #### 19. **java.lang.ref** - **用途**: 引用对象类。 - **关键类**: - `Reference`: 引用类的基类。 - `SoftReference`: 软引用类。 - `WeakReference`: 弱引用类。 ...

Global site tag (gtag.js) - Google Analytics