자바 로 C/C++헤더 파일 생 성 오류
2419 단어 c/c++
다음은 예 를 들 어 설명 한다.
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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
3. 배열 의 성명 및 초기 화 (test 1. java)먼저 배열 의 신청, 배열 의 초기 화, 배열 의 복사 등 을 배 웠 습 니 다.배열 에 대해 저 는 C \ C + + 의 배열 과 큰 차이 가 없다 고 생각 합 니 다. 그러나 JAVA 에서 JAVA 는 대상 을 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.