Share this page 

Get the PIDTag(s): Environment JNI


class JavaHowTo {
  public native long getCurrentProcessId();
  static {
    System.loadLibrary("jni2");
  }
}

public class JNIJavaHowTo {
  public static void main(String[] args) {
    JavaHowTo jht = new JavaHowTo();
    System.out.println("Press Any key...");
    java.io.BufferedReader input =
      new java.io.BufferedReader(new java.io.InputStreamReader(System.in));
    try { input.readLine();}
    catch (Exception e) { e.printStackTrace();}
    System.out.println(jht.getCurrentProcessId());
  }
}

// jni2.cpp : Defines the entry point for the DLL application.
//

#include "stdafx.h"
#include <process.h>
#include "JavaHowTo.h"

BOOL APIENTRY DllMain( HANDLE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                     )
{
    return TRUE;
}


JNIEXPORT jlong JNICALL Java_JavaHowTo_getCurrentProcessId
  (JNIEnv *, jobject) {

     // return GetCurrentProcessId();
    return getpid();
}
You can download the whole thing here.

For a Java-only solution, see this HowTo