流程已经整理好了,按照步骤一步一步执行即可,不谢!
一、将已经编译后的java中Class文件进行打包;打包命令JAR
使用的命令:
jar cvf test.jar -C com/ .
其中test.jar为要生成的jar包;com/ . 为指定的com当前目录下的文件夹,该文件夹包括子文件夹及class文件;
举例子:
出现下面的结果
此时在文件夹production下就会存在test.jar文件
二、到IKVM官方网站下载IKVM需要的组件 http://www.ikvm.net/
我下载的是 ikvm-7.2.4630.5
三、设置ikvm环境变量
在win8.1/win10下的步骤如下:
通过 计算机/此电脑(根据系统名称而不同)右击->属性->高级系统设置->环境变量
找到系统变量下面的path添加路径如 C:\ikvmc-XXX\bin\; (其中ikvmc-XXX是你的ikvmc文件夹所在路径地址)
运行命令行cmd,输入ikvmc查看帮助
四、将java的jar包转换为.dll控件
使用的命令:
ikvmc -out:IKVM.dll test.jar
其中IKVM.dll为将要生成的.dll控件文件名;test.jar为之前打包好的jar包文件。
举例子:
五、如果是多依赖包
使用的命令:
ikvmc -target:library test.jar -r:bc.dll
其中test.jar是你第一步生成的jar包 bc.dll是你 test.jar依赖的jar包生成的dll文件
举例子:
此时在对应文件夹下会出现test.dll文件 这个文件依赖的是bcprov-jdk15on-1.57.dll这个文件
六、在C#项目中添加所需的控件
网上很多地方都教你使用的是
IKVM.OpenJDK.Core.dll IKVM.Runtime.dll IKVM.Runtime.JNI.dll
三个文件即可
但我使用了这三个dll文件和转化好的dll文件后 在项目执行过程中 总是提示
XXX的类型初始值设定项引发异常 的错误
解决此问题也很简单
只需要添加如下dll文件即可
IKVM.AWT.WinForms.dll
IKVM.OpenJDK.Beans.dll
IKVM.OpenJDK.Charsets.dll
IKVM.OpenJDK.Corba.dll
IKVM.OpenJDK.Core.dll
IKVM.OpenJDK.Management.dll
IKVM.OpenJDK.Media.dll
IKVM.OpenJDK.Misc.dll
IKVM.OpenJDK.Naming.dll
IKVM.OpenJDK.Remoting.dll
IKVM.OpenJDK.Security.dll
IKVM.OpenJDK.SwingAWT.dll
IKVM.OpenJDK.Text.dll
IKVM.OpenJDK.Util.dll
IKVM.OpenJDK.XML.API.dll
IKVM.Runtime.dll
IKVM.Runtime.JNI.dll
文件在ikvmc文件夹中都存在的
七、重新编译 测试
完美