1. Java 파일을 쓰고, 기본 메소드를 선언하고, 정적 명령문 블록을 통해 동적 링크 라이브러리를로드하십시오. 예제 프롬프트. 자바 코드는 다음과 같습니다.
클래스 프롬프트 {개인 기본 문자열 getline (문자열 프롬프트); public static void main (String args []) {프롬프트 p = 새 프롬프트 (); 문자열 입력 = p.getline ( "타입 A 라인 :"); System.out.println ( "사용자 유형 :" + 입력); } static {System.LoadLibrary ( "Prompt"); }} 2. Javac 명령에 전화하여 prompt.class 파일을 생성합니다.
Javac Prompt.java
3. Javah 명령에 전화하여 C 프로그램에 의해 참조 할 프롬프트를 생성합니다.
Javah -jni 프롬프트
자동으로 생성 된 헤더 파일은 다음과 같습니다.
/ *이 파일을 편집하지 마십시오 - 컴퓨터가 생성됩니다 */#클래스 프롬프트를위한 <jni.h>/ * 헤더 포함 */#ifndef _included_prompt#define _included_prompt#ifdef __cplusplusextern "c"{#endif/ * * class : prompt * signature : getline * signature : (ljava/lang/string;) ljava/lang/string; */jniexport jstring jnicall Java_prompt_getline (jnienv *, jobject, jstring);#ifdef __cplusplus}#endif#endif 4. Prompt.c 파일 쓰기 특정 기능을 구현하려면 :
#include <jni.h> #include <stdio.h> #include "prompt.h"jniexport void jnicalljava_prompt_getline (jnienv *env, jobject obj, jstring prompt) {char buf [128]; const jbyte *str; str = (*env)-> getStringutfchars (Env, Prompt, Null); if (str == null) {return null; } printf ( "%s", str); (*env)-> 릴리스 스트링 컷 카스 (Env, Prompt, str); scanf ( "%s", buf); return (*env)-> Newstringutf (Env, buf);} 5. 동적 라이브러리 Libprompt.so를 컴파일하십시오.
gcc-shared -fpic -i/usr/lib/jvm/java-6- sun-1.6.0.26/포함 -i/usr/lib/jvm/java-6- sun-1.6.0.26/include/linux prompt.c -o libprompt.so
6. 실행.
자바 프롬프트
읽어 주셔서 감사합니다. 도움이되기를 바랍니다. 이 사이트를 지원 해주셔서 감사합니다!