参考资料:https://blog.csdn.net/threadroc/article/details/51406587

参考1:http://www.cnblogs.com/Jack-Blog/p/4710848.html?utm_source=tuicool&utm_medium=referral

参考2:http://www.tuicool.com/articles/EZJ7zqR

环境:

jdk-7windows-x64     (友情提示:不要用最新版的jdk, jdk1.8应该不行)

eclipse-jee-kepler-SR2-win32-x86_64

1.到http://www.ikvm.net/下载ikvm;

不会下载的到这里下:http://download.csdn.net/detail/threadroc/9520165

下载完毕后解压,我的解压目录:D:\workspace\java\ikvm-7.2.4630.5

2.设置ikvm环境变量

右击我的电脑->属性->高级系统设置->环境变量;

在系统变量下的path添加  D:\workspace\java\ikvm-7.2.4630.5  (友情提示:别忘了分号)

3.导出jar包

你的项目必须有包名假设为test_pkg

在eclipse中选中你要导出jar的项目->右键->Export->选中Java文件夹下的Jar file->Next->一路Next->Finish;

4.jar转dll

新建一个文件夹名为[temp],文件夹里新建一个名为[cd.bat]文件,文件内容是cmd

把你刚才导出的jar包复制到该文件夹;

双击cd.bat运行,

输入ikvmc -out:Test.dll Test.jar   (含义是将Test.jar转换为Test.dll,  [Test]换成你的包名)

如果你的java项目引用了第三方包.  比如我引用了一个叫abc.jar和qwe.jar的包

你还需要用命令

ikvmc -out:abc.dll abc.jar   将abc.jar包转换为abc.dll

ikvmc -out:qwe.dll qwe.jar   将qwe.jar包转换为qwe.dll

然后用ikvmc -target:library Test.jar -r:abc.dll -r:qwe.dll   (意思就是将Test.jar转换为Test.dll,并引用了abc.dll和qwe.dll)

5.C#调用

C#引用

IKVM.OpenJDK.Core.dll

IKVM.Runtime.dll

IKVM.Runtime.JNI.dll

IKVM.OpenJDK.ClassLibrary.dll

IKVM.OpenJDK.Security

以上几个可以在ikvm安装目录找到,找不到的在此下载:http://download.csdn.net/detail/threadroc/9520211

最后再引用Test.dll和与其相关的jar包编译成的dll就可以了.

using test_pkg

就可以调用java代码了;

C#调用java代码(IKVMC)的更多相关文章

  1. C#调用Java代码

    c#直接调用java代码,需要ikvmbin-0.44.0.5.zip.下载地址: http://pan.baidu.com/share/link?shareid=3996679697&uk= ...

  2. JNI NDK (AndroidStudio+CMake )实现C C++调用Java代码流程

    JNI/NDK Java调用C/C++前言  通过第三篇文章讲解在实际的开发过程中Java层调用C/C++层的处理流程.其实我们在很大的业务里也需要C/C+ +层去调用Java层,这两层之间的相互调用 ...

  3. python 调用 java代码

    一.JPype简述 1.JPype是什么? JPype是一个能够让 python 代码方便地调用 Java 代码的工具,从而克服了 python 在某些领域(如服务器端编程)中的不足. 2.JPype ...

  4. python2.7 (x64) 调用 java 代码实践

    背景:公司实施接口自动化测试,使用的框架python+unittest:因为开发使用的架构师SpringBoot,在测试过程中难免需要使用到python调用JAVA的一些接口,所以需要用到python ...

  5. Python调用Java代码部署及初步使用

    Python调用Java代码部署: jpype下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#jpype 下载的时候需要使用Chrome浏览器进行下载 ...

  6. python调用Java代码,完毕JBPM工作流application

    1.缘由 有一庞大Python django webproject,要引入工作流引擎,像OA一样.方便的流程控制与管理.Python或django关于工作流的开源插件,稀少,并且弱爆了,终于选用jav ...

  7. C代码调用Java代码

    C代码调用Java代码应用场景 复用已经存在的java代码 c语言需要给java一些通知 c代码不方便实现的逻辑(界面) 反射 //1.加载类字节码 Class clazz = Demo.class. ...

  8. 【开发者笔记】c# 调用java代码

    一.需求阐述 java实现的一个算法,想翻译成c#,翻译代码之后发现有bug,于是不调试了.直接将jar打包成dll拿来用. 二.原理说明 jar可以通过ikvmc工具打包成dll,然后在项目中引入该 ...

  9. js调用java代码返回解决方案

    版权声明:本文为楼主原创文章,未经楼主允许不得转载,如要转载请注明来源. 今天封装一个加密标签,遇到一个问题,我需要对页面上的数据调用java后台代码进行解密,而标签里只能通过js获取到数据,所以就遇 ...

随机推荐

  1. 三、fgetc与fputc

    fgetc 功能:从流中读取一个字符 原型:int fgetc(FILE *stream); 参数: stream:要读取的流指针 返回:读取到的字符,如果读完则返回EOF,EOF是end of fi ...

  2. BootstrapValidator . select 必须选择一个 .callback . select .option

    1.对于: 如果 只是引用 notEmpty , 不起作用.   因为 请选择教师  也是一个 option , 一个选项. 可以使用 callback. 'userId':{ message :'教 ...

  3. python自学第12天 模块

    json , pickle模块 json,用于字符串和python数据类型间进行转换 pickle,用于python特有的类型和python数据类型间的进行转换 shelve 模块 是一个简单的k,v ...

  4. 3.5 unittest生成测试报告HTMLTestRunner

    3.5 unittest生成测试报告HTMLTestRunner 前言批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的.unittest里面是不 ...

  5. Eclipse 使用 VS Emulator for android 调试环境配置 步骤

    模拟器启动器地址:C:\Program Files (x86)\Microsoft Emulator Manager\1.0\emulatorcmd.exe 获取模拟器ID命令:emulatorcmd ...

  6. 我发起并创立了一个 .Net 平台上的 Web 业务系统 基础库 开源项目 WebEasy

    我 强调一点, 程序员 应该对 程序 有 控制感 . 过多的 控制反转 使 程序员 丧失了 对 程序 的 控制感 . 过多的 依赖注入 束缚了 程序员 的 创造力 . 过度复杂的 架构设计 束缚了 程 ...

  7. Fabric实例

    Fabric的官网  http://fabric-chs.readthedocs.io/zh_CN/chs/index.html 参考<Python自动化运维 技术与最佳实践>   1:查 ...

  8. Vue 表单校验 vee-validate

    gitHub 地址:https://github.com/baianat/vee-validate 官网API 地址:https://baianat.github.io/vee-validate/ap ...

  9. Asp.net:上传文件超过了最大请求长度

    错误消息:超过了最大请求长度    错误原因:asp.net默认最大上传文件大小为4M,运行超时时间为90S.   解决方案 1. 修改web.config文件可以改变这个默认值            ...

  10. servlet-jsp-EL 表达式

    jsp--EL表达式 jsp表达式<%= %>用于向页面中输出一个对象.jsp2.0时在页面中不允许出现jsp表达式和脚本片段,于是使用EL表达式来代替jsp表达式,标签代替脚本片段 基本 ...