以整型做为参数的,示例命令输入同上
class HelloWorld {
    public native void displayHelloWorld(int a);    static {
        System.loadLibrary("hello");
    }
    
    public static void main(String[] args) {
        new HelloWorld().displayHelloWorld(1);
    }
}
#include <jni.h>
#include "HelloWorld.h"
#include <stdio.h>JNIEXPORT void JNICALL 
Java_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj, jint a) 
{
    printf("This is a intger :%d!\n", a);
    return;
}

解决方案 »

  1.   

    以String做为参数的函数调用示例:
    //JAVA文件
    import java.io.*;
    import javax.swing.*;class HelloWorld {
        public native String  displayHelloWorld(String str);    static {
            System.loadLibrary("hello");
        }
        
        public static void main(String[] args) {
           String str = new HelloWorld().displayHelloWorld("Tom");
       System.out.println(str);
        }
    }//C文件
    #include <jni.h>
    #include "HelloWorld.h"
    #include <stdio.h>JNIEXPORT jstring JNICALL Java_HelloWorld_displayHelloWorld
      (JNIEnv *env, jobject obj, jstring str) 
    {
    /* DO NOT USE jstring THIS WAY !!! */
    // JNIEXPORT jstring JNICALL
    // Java_Prompt_getLine(JNIEnv *env, jobject obj, jstring prompt)
    // {
    //    printf("%s", prompt);
    // ... 
    // by: http://java.sun.com/docs/books/tutorial/native1.1/implementing/string.html char buf[128];
        const char *temp = (*env)->GetStringUTFChars(env, str, 0);
        printf("Hello %s !\n", temp);
        (*env)->ReleaseStringUTFChars(env, str, temp);
    printf("Please input string:");
    scanf("%s", buf);
        return (*env)->NewStringUTF(env, buf);
    }