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(); }