做項(xiàng)目,無論是遺留產(chǎn)品的再生產(chǎn),還是對(duì)遺留產(chǎn)品的再利用,都不可避免的會(huì)出現(xiàn)一大堆的異構(gòu)現(xiàn)象。解決異構(gòu)通信問題是這類項(xiàng)目的主要問題。以前看見這種情況第一個(gè)解決方案就是Socket通信。說實(shí)在的自己實(shí)現(xiàn)Socket通信,定制通信協(xié)議,或者是實(shí)現(xiàn)已有的通信協(xié)議都是很頭痛的事情。本人有不堪回首的歷史經(jīng)歷。 最近同樣在項(xiàng)目中需要去解決一個(gè)異構(gòu)問題,由于時(shí)間的緊迫,以及先天的運(yùn)行環(huán)境(兩個(gè)部分是運(yùn)行在同一臺(tái)機(jī)器上的)。考慮到了使用JNI,結(jié)果表明JNI是完全可以勝任目前的角色的。以前沒有了解過JNI,總是以為它這不好那不好,用了用,表現(xiàn)還不錯(cuò),而且實(shí)現(xiàn)起來非常之簡(jiǎn)單。 整個(gè)實(shí)現(xiàn)過程可以分為五步來完成:1)寫一個(gè)聲明了native的Java文件: