Java如何调用C#写的".dll"类库

时间:2024-03-19 14:43:03

需求:游戏客户端服务端要共用一套属性系统,但是服务端是用Java编写,客户端是C#编写。属性系统是在客户端由C#生成的dll类库,服务端要想使用,就需要Java调用该C#生成的dll类库。

但是:java 并不能直接调用 C# 的 dll,步骤如下:

1. 下载jni4net最新版(我的为jni4net-0.8.8.0-bin.zip)

2. 配置环境变量:

a.  配置JAVA_HOME​,并将“%JAVA_HOME%\bin”加入Path

b. 将“C:\Windows\Microsoft.NET\Framework\v3.5\csc.exe​”加入Path,ProxyGen.exe执行时会用到

3. ​运行generateProxies.cmd

​a. 首先用NotePad++打开,在该文件最后一行加上"pause",以便于调试,如下:

Java如何调用C#写的".dll"类库

​​​​

b. ​双击执行该文件,你会发现:

Java如何调用C#写的".dll"类库

解决A错误:将"你的本地路径\jni4net-0.8.8.0-bin\lib\jni4net.n-0.8.8.0.dll"文件,右键单击-属性-解除锁定。再次双击执行generateProxies.cmd,如果还报如上错误,则将相应路径下的dll文件,做同样操作即可。

4. 运行run.cmd

最后生成了许多文件,其中以下6个文件是Java工程编译所必须的,仅仅1个文件MyCSharpDemoCalc.dll 是Unity工程编译所必须的:

Java如何调用C#写的".dll"类库以上6个文件必须放在同一个文件夹中,其中前三个文件(jni4net开头)为插件包,后三个文件则是我们的C#代码包 

参考链接如下:​

http://jni4net.com/

http://xiaqianlin.cn/?p=490​

https://github.com/jni4net/jni4net​

​http://www.codepool.biz/ocr-barcode-twain/twain-sdk/java-twain-with-dynamic-net-twain-and-jni4net.html

此外还有一种方式:

http://dev.mainsoft.com/Default.aspx?tabid=130 该网站上的 Grasshopper 理论上可以起到把 c# 转为 java 的效果。