c#调用java代码(jar转化成dll):ikvm 使用注意事项
2017-03-31 22:09
796 查看
在开发前先强调一点:截止这个时间点一定不要使用jdk1.8版本,这点很重要。
分享:推荐链接
我就是按照这个做的。具体jar包转换成dll原理:①虚拟机:ikvm 是使用c#代码实现的jdk环境。②类库使用c#代实现java类库,就好比object与System对应。所以可以识别javabytecode转化为相应的c#代码。
下面是转化java代码为c#步骤:
首先配置下载ikvm,安装配置环境变量。具体步骤可以看分享链接。我主要介绍我在转的时候遇到问题,希望可以帮助和我一样的人尽快解决问题。
①写测试类—->编译(这个一定要编译(.javaà.class))
②转化成jar包。这个注意下:有一种简单的方式将。Class文件打包成.zip文件然后改后缀名。一定要打包成.zip格式文件再改后缀名。
③使用ikvm转换:在dos命令窗口中输入:ikvmc -target:library a.jar
其中a.jar是你jar包。
这样就会生成可以使用的dll文件。
分享其中遇到一些问题:
一、jar包问题,”cannot find central directory” 压缩文件的时候选择.rar格式造成的。
![](https://img-blog.csdn.net/20170331220638347?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2luYXRfMzUxNjUxODM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
二、jdk版本导致的报错:.class不是一个类。这是属于你jdk版本的原因。(我之前使用jdk1.8编译,一直报错后来换了1.7版本可以了,1.6有位网友验证也可以的。)
下面图片讲解给没使用过.net开发人员
添加引用:见图添加了自己转的hello.dll,以及ikvm相应的dll如果想查看hello.dll里面包含哪些类,哪些方法,可以双击该引用一下。
在代码里使用using 导入相应的包(c#里称为namespace),剩下就是大胆使用他的类和方法。
![](https://img-blog.csdn.net/20170331220734183?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2luYXRfMzUxNjUxODM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](https://img-blog.csdn.net/20170331220756167?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2luYXRfMzUxNjUxODM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](https://img-blog.csdn.net/20170331220823058?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2luYXRfMzUxNjUxODM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
这个小Demo有个疑问:能不能将java web项目转化为jar包供c#项目调用。其中我主要疑虑xml文件和jsp文件这两个地方,就是不知道xml文件是否可行。
分享:推荐链接
我就是按照这个做的。具体jar包转换成dll原理:①虚拟机:ikvm 是使用c#代码实现的jdk环境。②类库使用c#代实现java类库,就好比object与System对应。所以可以识别javabytecode转化为相应的c#代码。
下面是转化java代码为c#步骤:
首先配置下载ikvm,安装配置环境变量。具体步骤可以看分享链接。我主要介绍我在转的时候遇到问题,希望可以帮助和我一样的人尽快解决问题。
①写测试类—->编译(这个一定要编译(.javaà.class))
②转化成jar包。这个注意下:有一种简单的方式将。Class文件打包成.zip文件然后改后缀名。一定要打包成.zip格式文件再改后缀名。
③使用ikvm转换:在dos命令窗口中输入:ikvmc -target:library a.jar
其中a.jar是你jar包。
这样就会生成可以使用的dll文件。
分享其中遇到一些问题:
一、jar包问题,”cannot find central directory” 压缩文件的时候选择.rar格式造成的。
二、jdk版本导致的报错:.class不是一个类。这是属于你jdk版本的原因。(我之前使用jdk1.8编译,一直报错后来换了1.7版本可以了,1.6有位网友验证也可以的。)
下面图片讲解给没使用过.net开发人员
添加引用:见图添加了自己转的hello.dll,以及ikvm相应的dll如果想查看hello.dll里面包含哪些类,哪些方法,可以双击该引用一下。
在代码里使用using 导入相应的包(c#里称为namespace),剩下就是大胆使用他的类和方法。
这个小Demo有个疑问:能不能将java web项目转化为jar包供c#项目调用。其中我主要疑虑xml文件和jsp文件这两个地方,就是不知道xml文件是否可行。
相关文章推荐
- Android WebView使用之JavaScript调用Java代码注意事项
- 关于 调用 JNI JAR 的说明和注意事项,调用第三方 JAR SDK 和 翻译 安卓 JAVA 代码 的说明 V2015.6.10
- 关于 调用 JNI JAR 的说明和注意事项,调用第三方 JAR SDK 和 翻译 安卓 JAVA 代码 的说明 V2015.6.10 (转)
- jar打包成dll(C#调用java代码)
- 在jre1.8版本下,使用ikvm将jar转换为dll,以供c#调用
- C++工程代码打包的dll在C#工程上使用注意点!变量对应关系与dll调用出错情况。
- C# 调用带有复杂参数的C++ ,delphi dll 注意事项备注。(C++ dll 怎么回调C# 程序,参数怎么写?)
- C#中调用C++写的DLL注意事项
- C#.net调用动态库dll注意事项
- (学习笔记)C++编写dll C#调用注意事项
- 在VS2010上使用C#调用非托管C++生成opencv代码的DLL文件
- ajaxpro调用C#代码需要注意的事项(1)
- C# DllImport 系统调用使用详解 托管代码的介绍 EntryPoint的使用
- 关于 调用 JNI JAR java 的说明和注意事项,调用第 靠写不下了
- IKVM:java代码c#调用
- 如何在java中使用jna.jar调用Delphi写的dll
- C#客户端调用java CXF WebService注意事项
- C++调用C#生成的DLL实现及注意事项
- C# 使用Oracle.DataAccess.dll注意事项
- JAVA调用DLL的注意事项