c#調(diào)用jar包的方法步驟(非常詳細(xì))
前言
最近項(xiàng)目遇到一個(gè)問(wèn)題,就是有一個(gè)需求是cs端數(shù)據(jù)需要加密(使用sm4的加密方法),后端接收需要解密,但是cs端是c#寫的 后端是java寫的,兩端的加密方式 的結(jié)果都會(huì)有所不同,當(dāng)然還是我們這幫菜對(duì)算法這塊研究不深。后面找了調(diào)用中間的c語(yǔ)言去弄 還是沒(méi)有搞好,最后找的了一種方法,就是把java代碼打成jar包 然后轉(zhuǎn)換成dll,供cs端調(diào)用。
步驟如下
一、將已經(jīng)編譯后的java中Class文件進(jìn)行打包;打包命令JAR
打包:可以使用命令 也可以使用eclipse 和idea 這樣的工具直接打包 【源碼會(huì)放在最后】
二、到IKVM官方網(wǎng)站下載IKVM需要的組件

網(wǎng)上有一大堆教程 有很多沒(méi)有提到j(luò)dk版本跟這個(gè)有關(guān)系,如圖所示的支持1.8版本的,這個(gè)不向低版本兼容哦,如果找不到這個(gè)版本的ikvm可以私聊我。
三、設(shè)置路徑 解壓ikvm-8.1.5717.0.zip,可以設(shè)置IKVM_HOME的路徑到環(huán)境變量,也可以直接使用固定的路徑配置進(jìn)去,我這里是 直接把完整的路徑配置進(jìn)去的

四、將java的jar包轉(zhuǎn)換為.dll控件 使用的命令:ikvmc -target:library xxx.jar 和 ikvmc -target:library -reference:需引用A.dll -reference:需引用B.dll 主的.jar
前者命令是把jar打成dll 后者是把jar打成dll的同時(shí) 加入他需要外部引入的dll包(原jar包引用)

ps:我這邊是把jar包都復(fù)制到ikvm的bin目錄下 ,并且在bin的目錄下使用的ikvmc命令,如果是使用idea引入的是把所有的lib包放在一個(gè)目錄下 在modules引入的,只需要把主jar包打成一個(gè)dll就行了 其他不必引用到cs里面去,elipse則是都需要打成dll 都引入?!具@里是看實(shí)際情況而言,最好是都打成dll引入】 五、在C#項(xiàng)目中添加所需的控件 前提需要下載:ikvm,不然會(huì)報(bào)錯(cuò)

引用打包好的dll


現(xiàn)在就可以使用了

總結(jié)
到此這篇關(guān)于c#調(diào)用jar包的文章就介紹到這了,更多相關(guān)c#調(diào)用jar包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#動(dòng)態(tài)查詢之巧用Expression組合多條件表達(dá)式的方法和步驟
在C#中,可以使用AndAlso和OrElse方法組合兩個(gè)Expression<Func<T, bool>>類型的表達(dá)式,下面通過(guò)實(shí)例代碼給大家分享C#動(dòng)態(tài)查詢之巧用Expression組合多條件表達(dá)式,感興趣的朋友跟隨小編一起看看吧2024-05-05
C#通過(guò)GET/POST方式發(fā)送Http請(qǐng)求
本文主要介紹了C#實(shí)現(xiàn)http請(qǐng)求的兩種方式,get和post方式。文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
C#中實(shí)現(xiàn)向數(shù)組中動(dòng)態(tài)添加元素
這篇文章主要介紹了C#中實(shí)現(xiàn)向數(shù)組中動(dòng)態(tài)添加元素方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06

