JNI - «Невозможно открыть включаемый файл: 'jni_md.h'»

Этот пример программы предназначен для вызова собственного метода, написанного на C.

Java-код

class HelloWorld {

    private native void print();

    public static void main( String args[] ) {
        new HelloWorld().print();
    }

    static {
        System.loadLibrary("HelloWorld");
    }

}

После написания этого я скомпилировал программу и сгенерировал файл заголовка в стиле JNI .

сгенерирован файл заголовка:

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <C:\Program Files\Java\jdk1.7.0\include\jni.h>
/* 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

И собственный метод, написанный на c

#include <C:\Program Files\Java\jdk1.7.0\include\jni.h>
#include <C:\Program Files\Java\jdk1.7.0\include\win32\jni_md.h>
#include <stdio.h>
#include "HelloWorld.h"

JNIEXPORT void JNICALL Java_HelloWorld_print( JNIENv *env , jobject obj) {
    printf("Hello World!\n");
    return;
}

. Ошибка, которую я получаю при компиляции, - это фатальная ошибка C1083: Невозможно открыть включаемый файл: 'jni_md.h': Нет такого файла или каталога

Также мой компилятор подчеркивает jobject obj , говоря, что этот класс не имеет класса памяти или спецификатора . Он подчеркивает * env , говоря ожидал ')' .

Почему я получаю эту ошибку?

36
задан user2864740 13 May 2014 в 03:50
поделиться