C#调用JAVA代码,C#怎么使用JAVA功能

流程已经整理好了,按照步骤一步一步执行即可,不谢!

一、将已经编译后的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文件夹中都存在的

七、重新编译 测试

完美

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

从入门到放弃-咖啡豆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值