1. public static int getPid() {
  2. if (PID < 0) {
  3. try {
  4. RuntimeMXBean runtime = ManagementFactory.getRuntimeMXBean();
  5. String name = runtime.getName(); // format: "pid@hostname"
  6. PID = Integer.parseInt(name.substring(0, name.indexOf('@')));
  7. } catch (Throwable e) {
  8. PID = 0;
  9. }
  10. }
  11. return PID;
  12. }

我自己写的

Java获取当前进程:

  1. @Override
  2. public void afterPropertiesSet() throws Exception {
  3. tab();
  4. show("进程:" + ManagementFactory.getRuntimeMXBean().getName());
  5. show("进程ID:" + ManagementFactory.getRuntimeMXBean().getName().split("@")[0]);
  6. tab();
  7. }

进程:62893@zhouzhenyongdeMacBook.local
进程ID:62893

jps确认

zhouzhenyong@zhouzhenyongdeMacBook ~> jps
849 JswLauncher
62488 Launcher
33291
63196 Jps
62892 Launcher
62893 ClientApplication

rocketmq获取pid方式

  1. public static int getPid() {
  2. RuntimeMXBean runtime = ManagementFactory.getRuntimeMXBean();
  3. String name = runtime.getName(); // format: "pid@hostname"
  4. try {
  5. return Integer.parseInt(name.substring(0, name.indexOf('@')));
  6. } catch (Exception e) {
  7. return -1;
  8. }
  9. }