Я пытался реализовать JNI.
сначала я создаю класс Java, содержащий один нативный метод, и компилирую его, используя «javac HelloWorld.java», а затем создаю заголовочный файл, используя «javah HelloWorld» ... вот код
class HelloWorld {
private native void print();
public static void main(String[] args) {
new HelloWorld().print();
}
static {
System.loadLibrary("HelloWorld");
}
}
Файл HelloWorld.h, как показано ниже .....
/* DO NOT EDIT THIS FILE - it is machine generated */
#include
/* Header for class HelloWorld */
#ifndef _Included_HelloWorld
#define _Included_HelloWorld
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: HelloWorld
* Method: print
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_HelloWorld_print
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
после этого я создал файл HelloWorld.c ... вот код
#include
#include
#include "HelloWorld.h"
JNIEXPORT void JNICALL
Java_HelloWorld_print(JNIEnv *env, jobject obj)
{
printf("Hello World!\n");
return;
}
и затем скомпилируйте мой файл HelloWorld.c, используя нижеприведенную команду в Visual studio 2008
cl -Ic: \ java \ jdk \ include -Ic: \ java \ jdk \ include \ win32 -MD -LD HelloWorld.c -FeHelloWorld.dll
он компилируется довольно хорошо, и DLL и другие файлы создаются в той же папке bin, где находится файл "HelloWorld.class".
но при запуске файла Java с помощью команды "java HelloWorld" ошибка msvcr90.dll в файле отсутствует ошибка ....
Я попытался переустановить свой JDK, но все еще проблема
что мне делать ...