1. เขียนไฟล์ Java ประกาศวิธีการดั้งเดิมและโหลดไลบรารีลิงก์แบบไดนามิกผ่านบล็อกคำสั่งแบบคงที่ ตัวอย่าง Prompt.java มีดังนี้:
พรอมต์คลาส {สตริงดั้งเดิมของสตริง getLine (พรอมต์สตริง); โมฆะคงที่สาธารณะหลัก (สตริง args []) {พรอมต์ p = new prompt (); สตริงอินพุต = p.getLine ("พิมพ์บรรทัด:"); System.out.println ("ผู้ใช้พิมพ์:" + อินพุต); } คงที่ {system.loadLibrary ("พรอมต์"); - 2. เรียกคำสั่ง Javac เพื่อสร้างไฟล์พรอมต์ไฟล์คลาส;
javac prompt.java
3. เรียกคำสั่ง Javah เพื่อสร้างไฟล์ส่วนหัว prompt.h สำหรับการอ้างอิงโดยโปรแกรม C:
javah -jni พรอมต์
ไฟล์ส่วนหัวที่สร้างขึ้นโดยอัตโนมัติมีดังนี้:
/ * อย่าแก้ไขไฟล์นี้ - เป็นเครื่องที่สร้างขึ้น */#รวม <jni.h>/ * ส่วนหัวสำหรับพรอมต์คลาส */#ifndef _included_prompt#define _included_prompt#ifdef __cplusplusextern "c" {#endif/ * * * * * * * * * * * * * * * * * * * * * * * * * * * (ljava/lang/string;) ljava/lang/string; */jniexport JString jnicall java_prompt_getline (jnienv *, Jobject, jstring);#ifdef __cplusplus}#endif#endif 4. ไฟล์ Write Prompt.c เพื่อใช้ฟังก์ชั่นเฉพาะ:
#include <jni.h> #include <stdio.h> #include "prompt.h" Jniexport เป็นโมฆะ 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)-> releasestringutfchars (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/รวม/linux prompt.c -o libprompt.so
6. วิ่ง.
Java Prompt
ขอบคุณสำหรับการอ่านฉันหวังว่ามันจะช่วยคุณได้ ขอบคุณสำหรับการสนับสนุนเว็บไซต์นี้!