C#调用java
本篇将记录C#如何调用java。
准备:java8、ikvm8(java7对应ikvm7,其他版本未知)
大致流程:
- .java项目转.jar文件;
- .jar文件转.dll文件;
- 项目引用dll文件;
一、. Java项目转.jar文件
Idea新建空java项目,修改项目SDK为1.8,Language level 为 18。
点击File – Project
Structure – Project。


点击File – Settings – Build,Execution,Deployment – Compiler – Java Compiler,修改Project bytecode version:8


新建.java文件,点build project,生成.class文件。
点击File – Project Structure – Artifacts – JAR – Empty,

修改Name,并在.jar右键Add Copy of,

找到刚刚 build project 所生成的.class文件;(如果.java有包路径,需要在.jar创建对应的目录)

点击OK。
在idea菜单栏点击 Build – Build Artifacts,生成TestJar2Dll.jar文件


二、.jar文件转.dll文件
Cmd,打开ikvm\bin目录,输入ikvmc –out:D:\xxx.dll D:\xxx.jar (第一个为输出dll目录,第二个为jar文件目录),出现如下图,没有其他提示说明生成成功。

如果出现如下图,考虑java版本和ikvm版本是否一致。

三、项目引用dll文件
新建C#项目,右键项目,管理NuGet程序包,安装IKVM 8.1.5717版本(因为我的ikvm用的是8.1.5717版本),并且引用.jar生成的.dll

至此,项目就可以使用java的方法。
最后,项目生成完后,需要把ikvm的dll放到项目根目录下。其中IKVM.OpenJDK.Core.dll、IKVM.Runtime.dll、IKVM.Runtime.JNI.dll为必须引用,其他根据java项目的引用而选择引用。


浙公网安备 33010602011771号