<address id="zhpbl"></address>
<noframes id="zhpbl">
<address id="zhpbl"><form id="zhpbl"><th id="zhpbl"></th></form></address>

    <em id="zhpbl"></em>

      <address id="zhpbl"><th id="zhpbl"><progress id="zhpbl"></progress></th></address>
      更多精彩內容,歡迎關注:

      視頻號
      視頻號

      抖音
      抖音

      快手
      快手

      微博
      微博

      c#調用java

      文檔

      c#調用java

      c#調用java是用.NET實現java虛擬機,java類庫的.NET,c#調用java需要準備一個C#類庫(dll),再編寫一個java類,編譯java類并打包成jar,即可執行。
      推薦度:
      導讀c#調用java是用.NET實現java虛擬機,java類庫的.NET,c#調用java需要準備一個C#類庫(dll),再編寫一個java類,編譯java類并打包成jar,即可執行。

      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,由于這個方法功能比較單一,我們選取了后者。

      以上就是小編今天的分享了,希望可以幫助到大家。

      文檔

      c#調用java

      c#調用java是用.NET實現java虛擬機,java類庫的.NET,c#調用java需要準備一個C#類庫(dll),再編寫一個java類,編譯java類并打包成jar,即可執行。
      推薦度:
      為你推薦
      資訊專欄
      熱門視頻
      相關推薦
      c#調用java接口 cache java calendar java qq實名認證怎么解除 callable java character java class轉java cmake java compareto java 被刪的微信聊天記錄怎么找回來 continue java django java 微信怎么群發消息給多人 double java dozer java eclipse創建java arrays java awesome java 小程序和app的區別 enum java brew java boolean java bitset java axis java asterisk java assert java 怎樣改抖音名字的昵稱 aspect java ansible java ajax java antlr java 交管12123怎么查科目一分數 abstract java 拼多多拒收在哪里操作 微信恢復刪除的聊天記錄 微信掃碼不能掃了怎么辦 怎樣查看微信刪除的聊天記錄 兩個二維碼怎么拼一起 電腦忘記開機密碼怎么辦 js 字符串轉數字
      Top 少妇高潮太爽了在线视频