C#调用java代码(IKVMC)
参考资料: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)的更多相关文章
- C#调用Java代码
c#直接调用java代码,需要ikvmbin-0.44.0.5.zip.下载地址: http://pan.baidu.com/share/link?shareid=3996679697&uk= ...
- JNI NDK (AndroidStudio+CMake )实现C C++调用Java代码流程
JNI/NDK Java调用C/C++前言 通过第三篇文章讲解在实际的开发过程中Java层调用C/C++层的处理流程.其实我们在很大的业务里也需要C/C+ +层去调用Java层,这两层之间的相互调用 ...
- python 调用 java代码
一.JPype简述 1.JPype是什么? JPype是一个能够让 python 代码方便地调用 Java 代码的工具,从而克服了 python 在某些领域(如服务器端编程)中的不足. 2.JPype ...
- python2.7 (x64) 调用 java 代码实践
背景:公司实施接口自动化测试,使用的框架python+unittest:因为开发使用的架构师SpringBoot,在测试过程中难免需要使用到python调用JAVA的一些接口,所以需要用到python ...
- Python调用Java代码部署及初步使用
Python调用Java代码部署: jpype下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#jpype 下载的时候需要使用Chrome浏览器进行下载 ...
- python调用Java代码,完毕JBPM工作流application
1.缘由 有一庞大Python django webproject,要引入工作流引擎,像OA一样.方便的流程控制与管理.Python或django关于工作流的开源插件,稀少,并且弱爆了,终于选用jav ...
- C代码调用Java代码
C代码调用Java代码应用场景 复用已经存在的java代码 c语言需要给java一些通知 c代码不方便实现的逻辑(界面) 反射 //1.加载类字节码 Class clazz = Demo.class. ...
- 【开发者笔记】c# 调用java代码
一.需求阐述 java实现的一个算法,想翻译成c#,翻译代码之后发现有bug,于是不调试了.直接将jar打包成dll拿来用. 二.原理说明 jar可以通过ikvmc工具打包成dll,然后在项目中引入该 ...
- js调用java代码返回解决方案
版权声明:本文为楼主原创文章,未经楼主允许不得转载,如要转载请注明来源. 今天封装一个加密标签,遇到一个问题,我需要对页面上的数据调用java后台代码进行解密,而标签里只能通过js获取到数据,所以就遇 ...
随机推荐
- 蓝牙协议分析(6)_BLE地址类型
1. 前言 也许关注BLE的同学都注意到了,BLE设备有多种类型的设备地址,如Public Device Address.Random Device Address.Static Device Add ...
- 2019微软Power BI 每月功能更新系列——2月Power BI 新功能学习
哈喽,小伙伴们,我是小悦悦,好久不见~ 春节假期结束,新一轮的工作开始,祝大家猪年如意,开工大吉! 今天小悦悦带你走入猪年学习的正确打开方式——Power BI新一年的持续更新学习! Power ...
- quartz Cron表达式解读
CronTrigger CronTriggers往往比SimpleTrigger更有用,如果您需要基于日历的概念,而非SimpleTrigger完全指定的时间间隔,复发的发射工作的时间表. CronT ...
- CSS权值
选择器权值 标签选择器:权值为1 类选择器和伪类:权值为10 ID选择器:权值为100 通配符选择器:权值为0 行内样式:权值为1000 !important规则: 可调整样式规则的优先级 添加在样式 ...
- CPU瓶颈分析工具
性能指标: 一.CPU利用率. 1.用户CPU使用率:用户态CPU使用率(user)和低优先级用户态CPU使用率(nice). 2.系统CPU使用率:说明内核比较忙. 3.等待I/O的CPU使用率(i ...
- Windows 下 安装 laravel(一些小笔记)
首先 安装完composer 下载地址 https://getcomposer.org/ 在 cmd 进入到 自己的项目访问目录 然后 输入命令:composer creat ...
- Idea基于maven搭建多模块单体结构项目
菜鸟教程 一.创建一个公共的父工程: 1.1 创建一个新的maven项目: 1.2 先创建公共的父工程,选择maven骨架: 1.3 配置maven: 1.4 填写groupId.artifactId ...
- xamarin android 报错 Could not load assembly 'Xamarin.Android.Support.v7.AppCompat
严重性 代码 说明 项目 文件 行 禁止显示状态 错误 Exception while loading assemblies: System.IO.FileNotFoundException: Cou ...
- C# Restful 启用 Session
虽然很多人说不建议启用,但我就是想启用. [ServiceContract(SessionMode=SessionMode.Allowed)] public interface IBIService ...
- goaccess geoip 测试
goaccess 是一个很不错的日志实时统计分析工具,我们可以用来方便的分析nginx apcahe iis 等的日志信息 对于geoip 的支持是需要源码编译的,所以基于官方docker 镜像添 ...