⑴ java調用C#封裝的DLL文件
先寫一個java類,Java代碼:
packagecom.ypoj.jni;
publicclassTestJNI{
publicnativeintadd(inta,intb);
static{
System.loadLibrary("CallCS");
}
publicstaticvoidmain(String[]args){
TestJNIt=newTestJNI();
System.out.println(t.add(10,20));
}
}
用javah生成的com_ypoj_jni_TestJNI.h,Cpp代碼:
#include<jni.h>
#ifndef_Included_com_ypoj_jni_TestJNI
#define_Included_com_ypoj_jni_TestJNI
#ifdef__cplusplus
extern"C"{
#endif
JNIEXPORTjintJNICALLJava_com_ypoj_jni_TestJNI_add
(JNIEnv*,jobject,jint,jint);
#ifdef__cplusplus
}
#endif
#endif
接下來先完成C#的 Dll,C#代碼:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
namespaceOJMain
{
publicclassOJEntrance
{
privateintresult;
publicintResult
{
get{returnresult+10;}
set{this.result=value;}
}
}
}
⑵ java中怎麼編寫dll文件........最好舉個例子
你是指使用動態鏈接嗎?這個可以用java中的反射機製做到,但是java中是沒有動態鏈接庫這種東西的。如果你指的是java調用本地dll的話,是使用jni技術,dll也不是java編寫的。總是java是不可能編譯成為dll。有一種這種的方案,就是將java編譯的文件轉換為c#的,微軟有相應的工具,可以搜到,然後就可以打包成為dll了。
⑶ Java如何將dll文件打包到jar中
這個問題是由於 類載入器 造成的
ClassLoader
你對ClassLoader了解么?
你對 boot ClassLoader了解么?
如過不清楚的話,請查看一下 Java類載入機制.
⑷ Java調用現有的一個C++封裝好的DLL庫中的一個方法(做到生成自己dll那一步了)
這個問題有點麻煩的地方是你的函數有兩個傳指針的輸出參數。
如果不是非常在意JNI調用的額外開銷的話,你可以試試JNA,https://github.com/twall/jna#readme
⑸ 請問怎樣把JAVA封裝成dll
java只能打成jar包
⑹ java載入dll文件
java沒法直接讀,只能先用C++寫一個讀取該dll內容的過程,按JNI規范封裝成dll,然後java載入這個dll執行其中的函數。
⑺ java可以生成.dll動態鏈接庫么
不可以 但是可以使用 關鍵詞 jni
⑻ java怎樣把dll文件一起打包到jar 或者成exe
dll打包,嗯,只要把dll包放到開發目錄下,應該就可以打包dll了,記得修改引用。