ikvmcjava8的简单介绍
今天给各位分享ikvmcjava8的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、.net平台支持java语言编写的代码吗?
- 2、用java写的后台方法可以提供给C#调用吗
- 3、C#调用Java时出现的问题Warning IKVMC0108: not a class file
- 4、c#调用java
- 5、如何在.net程序里调用java写的一个类
- 6、通过ikvm工具把Java程序jar包生成dll以供C#程序调用,但是生成dll的过程出错,导致C#不能正常调用dll。
.net平台支持java语言编写的代码吗?
不可以,.Net是微软推出的跨语言的平台,.Net的主要竞争对手之一就是Java,怎么可能会支持Java呢,这是绝对不可以的,楼主可以用Eclipse等工具。
用java写的后台方法可以提供给C#调用吗
Web API是不分语言的,任何语言封装好接口后;通过Web API都可以互相调用
你如果了解MVC的运行机制,就知道,这些其实就是Json或者Xml文件的传输而已
你把请求参数传给对方接口,然后解析传回的结果就行了
C#调用Java时出现的问题Warning IKVMC0108: not a class file
java 和 IKVMC的版本不对应。
如果你的java是1.7及以下,ikvmc用7.2的;java是1.8的,ikvmc用8.1的;
c#调用java
c#调用java是什么,让我们一起了解一下?
首先我们要知道,c#是什么?C#是微软公司发布的一种面向对象的、运行于.NET Framework和.NET Core(完全开源,跨平台)之上的高级程序设计语言。
那么我们如何用c#调用java,来完成我们的工作?
IKVM.NET是一个针对Mono和微软.net框架的java实现,其设计目的是在.NET平台上运行java程序。它包含了以下的组件:用.NET实现的java虚拟机,java类库的.NET实现,致力于在java和.NET之间交互的工具。
我们有一个JAVA写好的Demo,传的参数是用Gzip进行压缩传到服务器的,代码如下:
package Demo; import java.io.BufferedReader; import java.io.ByteArrayInputstream; import java.io.ByteArrayoutputstream; import java.io.IOException: import javaio.Inputstream import java.io.InputstreamReader; import java.io.objectInputStream; import java.io.0bjectoutputstream; import java.util.zip.GZIPInputstream; import java.util.zipGZIPOutputStream; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.methods.PostMethod: import org.apache.commons.httpclient.params.HttpClientParams; import com.google.gson.Gsonj public class Demo{ public static string dopostClient(string json, string url){ HttpClient httpClient =new HttpClient(); String rval =""; PostMethod postMethod =new PostMethod(url); try{ Gson gson =new Gson(); Inputstream in =new ByteArrayInputstream(objectToByte(json)); postMethod.setRequestBody(in); HttpClientParams params =new HttpClientParams(); httpClient.setParams(params); httpClient.executeMethod(postMethod); byte[1 b=postMethod.getResponseBody(); String rtnData =(String)byteTo0bject(b); rval=gson.toJson(rtnData);} catch(Exception e){ rval="erro:"+e.getMessage();} finally postMethod.releaseConnection() return rval;} public static byte[] objectToByte(javalang.0bject obj){ byte[] bytes = null; Objectoutputstream oo = hull; try{ ByteArrayOutputStream out=newByteArrayOutputstream(); GZIPOutputStream gzip =newGZIPOutputStream(out); gzip.write(obj.toString()getBytes("utf-8")); gzip.close(); bytes=out.toByteArray(); }catch(Exception e) e.printstackTrace();}finally{ if(oo != null){ try{ oo.close(); }catch(IOExceptione){ e.printstackTrace();} return bytes; private static java.lang.Object byteToobject(byte[] bytes){ String obj =""; ObjectInputstream oi =null; try{ ByteArrayInputstream bi = new ByteArrayInputstream(bytes); GZIPInputstream gzipi=new GZIPInputstream(bi); BufferedReader bufferedReader = new BufferedReader(new InoutStreamReader(azipi."UTF-8")) String line; while((line =bufferedReader.readLine())!=null) { obj+=line;} } catch(Exception e){ e.printStackTrace();}finally{ if(oi != null) { try oi.close(); }catch(I0Exception e) e.printstackTrace(); } } return obj;} }
这个代码我用C#改写了,用HttpWebRequest的方式传到服务器,服务器那边Gzip解压不了,查了原因是因为Java与C#的Byte类型值范围不同,我们有两种解决思路,一种是将这个JAVA做成webservice挂在服务器上,c#再去调用。第二种就是将这个方法编译成可由C#直接调用的DLL,由于这个方法功能比较单一,我们选取了后者。
如何在.net程序里调用java写的一个类
用VB调用过,使用方法:
1、把所需的.class文件放到winnt\java\trustlib目录
2、如果引用了相关jar文件,把其中引用到的相关.jar文件放到winnt\java\packages目录,在我的电脑--属性
--高级--系统变量,添加classpath变量,其值为引用的jar文件,如c:\winnt\java\packages
\ldapfilt.jar;c:\winnt\java\packages\ldapjdk.jar;c:\winnt\java\packages
\ldapsp.jar;.中间用分号隔开,最后用小数点结束
3、重启IIS,就可以使用class中对象了。
4、在.net文件中使用示例:
Dim adChk As Object = GetObject("java:Asp_JspAdLDAP")
Dim ok As Boolean
ok = adChk.checkUser(uid, pwd)
其中Asp_JspAdLDAP为对应的类名称,checkUser为其中的一个方法
通过ikvm工具把Java程序jar包生成dll以供C#程序调用,但是生成dll的过程出错,导致C#不能正常调用dll。
这是因为这个jar包中的类引用了其他的jar包,看你的控制台信息是dom4j。你可能需要把dom4j也一起进行转换。
关于ikvmcjava8和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。