在C#中调用Java生成的jar包文件的方法

发布时间 2023-04-04 16:30:24作者: power_yu

将.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,复制到项目的目录底下。

然后在项目上添加引用就可以正常使用了