JNI HelloWorld 簡單記錄

2022-09-23 11:18:13 字數 1379 閱讀 9541

需要用到jni ,複習一下.

上馬:[j**a] 

public class helloworld  

public static void main(string args)  

}   

編譯檔案

[j**a]  

j**ac helloworld.j**a   

生成標頭檔案

[html]  

j**ah -jni helloworld  

編寫c **:

[cpp]  

#include "helloworld.h"  

#include  

jniexport void jnicall j**a_helloworld_sayhi (jnienv *env, jobject object)     

生成類庫檔案

[html]  

gcc -shared -fpic -i/usr/lib/jvm/j**a-1.6.0-openjdk/include -i/usr/lib/jvm/j**a-1.6.0-openjdk/include/linux -o libhello.so helloworld.c    

注意有兩個-i 選項,這個兩個選項的屬性值分別是

[html] 

/usr/lib/jvm/j**a-1.6.0-openjdk/include  

和[html]  

/usr/lib/jvm/j**a-1.6.0-openjdk/include/linux  

表示,jni.h jni_md.h所在的路徑,這樣就得到的了類庫libhello.so

將  這個類庫放到 j**a.library.path 中就好了,

j**a.library.path 的獲取可以通過

[j**a]  

string libpath = system.getproperty("j**a.library.path");  

來獲取。

我用的是 /usr/lib

cp libhello.so /usr/lib

執行 helloworld

[html]  

j**a helloworld  

ps:1、在這個過程中遇到的jni.h jni_md.h找不到的問題,通過谷歌很容易的就找到了解決的辦法,在這裡謝謝谷歌!!

2、我的系統的版本是:

[html] 

linux version 2.6.35.6-45.fc14.i686 ([email protected]) (gcc version 4.5.1 20100924 (red hat 4.5.1-4) (gcc) ) #1 smp mon oct 18 23:56:17 utc 2010  

Ant Design簡單簡單簡單執行

config 配置檔案 config.js 路由定義檔案 路徑檔案 defaultsettings.js 主題顏色以及標題配置檔案 plugin.config.js 沒怎麼用過的配置檔案 dist 構建專案之後產生的檔案 mock mock資料檔案 用於本地開發使用 node modules 資源檔...

簡單題目不簡單回答

1 const變數與巨集的區別 2.程式的變數怎麼儲存的?3.巨集和列舉有什麼區別,定義陣列時使用列舉和使用巨集的區別 4.const變數是否可以做陣列下標 5.static的用法,static修飾類的方法時,是什麼意思 6.設計模式熟不熟?寫乙個最簡單的單例模式 7.如何用c實現物件導向 8.程式...

簡單的設計不簡單

最近看了 簡約至上 這本書,這本文章總結一下。推薦給對互動設計感興趣的童鞋。話說簡單 首先人們喜歡簡單 值得信賴 適應性強的產品。所以我們才會費盡心力去設計簡單的產品。人們喜歡簡單的產品原因有 1 產品的功能越多,就越難發現真正對使用者有價值的新功能。2 因為增加的複雜性導致他們很難找到自己真正需要...