在C#中调用Java生成的jar包文件的方法
将.jar档转成.dll
这里会使用到IKVM.NET。
IKVM.NET是让.NET C#代码可以调用Java类库的一种实现方式。
由于官网已无法下载
所以这边提供我手上从其他位置下载过的程序,可以提供2种版本:
ikvmbin-8.1.5717.0.zip此版本支持JDK 1.8的版本。
ikvmbin-7.2.4630.5.zip此版本支持JDK 1.7的版本。
你可以依照你使用的JDK版本来下载对应的程序。
以下的示范是使用ikvmbin-8.1.5717.0这个版本的程序。
下载解压缩后放在C:\Temp\ikvm-8.1.5717.0。(可以自行决定位置,只要指令指对路径即可。)
接着把对应jar文件如:JavaLibraryTest.jar放到bin目录下,
然后在cmd输入以下指令:
C:\Temp\ikvm-8.1.5717.0\bin
ikvmc -target:library JavaLibraryTest.jar
执行后会在bin目录下多一个JavaLibraryTest.dll,这就是要给.NET引用的dll
在执行.jar转.dll的过程中,可能会出现很多的错误,通常都是因为参照来源的问题,在java如果引用过多的library,就会有很多的warning出现,IKVM会试着找各种对应的library,但也会有找不到的问题,当找不到的话,实际上引用.dll就容易发生错误。
C#.NET引用Java类
NuGet上搜寻”IKVM”,这里要安装IKVM的版本,选择版本要跟刚刚把.jar转.dll的版本相同,我示范用的是ikvm-8.1.5717.0,所以在NuGet里面也要选8.1.5717版本安装产。
把刚刚用.jar转好的JavaLibraryTest.dll,复制到项目的目录底下。
然后在项目上添加引用就可以正常使用了