code: private static int processId() {
          // Note: may fail in some JVM implementations
          // something like '<pid>@<hostname>', at least in SUN / Oracle JVMs
          final String jvmName = ManagementFactory.getRuntimeMXBean().getName();
          final int index = jvmName.indexOf('@');
  
          if (index < 1)
              throw new RuntimeException("Could not get PID");
  
          try {
              return Integer.parseInt(jvmName.substring(0, index)) % MAX_PID;
          } catch (NumberFormatException e) {
              throw new RuntimeException("Could not get PID");
          }
      }
docs: Get the process id of this JVM. I haven't tested this extensively so its possible that this performs differently
  on esoteric JVMs. I copied this from:
  http://stackoverflow.com/questions/35842/how-can-a-java-program-get-its-own-process-id
  @return Id of the current JVM process.