2010-06-15 5 views
1

JNI 환경 변수를 통해 GetFieldID 메소드를 호출 할 때 원하는 필드에 대한 필드 설명자를 제공해야합니다. 객체의 필드 설명자가 무엇인지 어떻게 알 수 있습니까?JNI에서 객체의 필드 설명자는 어떻게 찾습니까?

예 : 내가 결정하는 것이 어떻게

jfieldID strField = env->GetFieldID(myClass, "example", "Ljava/lang/String;"); 

이 "Ljava/랭/문자열;" String 객체의 필드 설명자입니까?

답변

2

javap 도구는 클래스의 필드 설명자가 무엇인지 알려줍니다. 이를 사용하려면 액세스 할 수 있도록 필드와 객체의 컴파일 된 .class 파일이있는 디렉토리로 이동하여 다음 명령을 실행

javap -s -p MyClass 

이 명령은 클래스 필드의 모든 설명을 인쇄합니다.

그러나 일반적으로 대부분의 (비 프리미티브) 설명자는 "정식/정규/이름/of/MyClass;"형식입니다.

1

JNI documentation은 Java 유형을 JNI가 지원하는 유형 문자열로 변환하는 방법을 설명합니다. fieldId에 오기 전에 유형을 알아야합니다.

관련 문제