자바 로 C/C++헤더 파일 생 성 오류

2419 단어 c/c++
Javah 를 사용 하면 자바 원본 파일 을 가 져 오고 C/C++헤더 파일 을 생 성 할 수 있 습 니 다.자바 코드 의 모든 로 컬 방법(native 방법)을 포함 하 는 JNI 캐 시 루트(stub,C 헤더 파일)를 포함 합 니 다.JNI 존 근 을 만 들 고 있 으 며 이 종 류 를 가방 의 일부분 으로 정의 했다 면 완전히 제 한 된 클래스 이름 을 지정 해 야 합 니 다.
다음은 예 를 들 어 설명 한다.
eclipse 를 사용 하여 프로젝트 경 로 를$ProjectPath 라 고 가정 하고 클래스 를 정 의 했 으 며 패키지 이름:cn.com.mit.jni
----------------------------
package cn.com.comit.jni;

public class HelloJni {
	
	public native void displayHelloJni();
	static{
		System.loadLibrary("");
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new HelloJni().displayHelloJni();
	}

}

 
----------------------------
eclipse 는 자동 으로 바이트 파일 HelloJni.class 를 컴 파일 합 니 다.경 로 는$ProjectPath\빈\cn\com\comit\jni 입 니 다.먼저 cd 에서 class 디 렉 터 리 로 갈 수 있 습 니 다.
>cd $ProjectPath\bin\cn\com\comit\jni
>$ProjectPath\bin javah HelloJni
실행 오류 발견:
오류:HelloJni 오류 클래스 파일 에 접근 할 수 없습니다.\HelloJni.class 클래스 파일 에 오류 클래스 가 포함 되 어 있 습 니 다.cn.com.it.jni.HelloJni 이 파일 을 삭제 하거나 올 바른 클래스 경로 하위 디 렉 터 리 에 있 는 지 확인 하 십시오.
경로 에 문제 가 있 나 봐 요.그럼
javah cn.com.comit.jni.HelloJni
다시 실행,발견 또는 오류:
오류:cn.com.com.it.jni.HelloJni 에 접근 할 수 없습니다.cn.com.it.jni.HelloJni 의 클래스 파일 javadoc:오류-클래스 cn.com.it.jni.HelloJni 를 찾 을 수 없습니다.
 
어떻게 해야만 이 문 제 를 해결 할 수 있 습 니까?사실 cd 에서 가방 의 상위 디 렉 터 리(여 기 는$ProjectPath\bin)가 아래 명령 을 실행 하면 됩 니 다.
javah -classpath . cn.com.comit.jni.HelloJni
생 성 된 C 헤더 파일 보기:
 
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class cn_com_comit_jni_HelloJni */

//         
#ifndef _Included_cn_com_comit_jni_HelloJni 
#define _Included_cn_com_comit_jni_HelloJni
//c++         __cplusplus (plus  "+"   
#ifdef __cplusplus 
extern "C" {  //           c    (  c++ c             ,   c++     )
#endif
/*
 * Class:     cn_com_comit_jni_HelloJni
 * Method:    displayHelloJni
 * Signature: ()V
 */
JNIEXPORT void JNICALL Java_cn_com_comit_jni_HelloJni_displayHelloJni
  (JNIEnv *, jobject);

#ifdef __cplusplus
}
#endif
#endif
 
 
 
 

좋은 웹페이지 즐겨찾기