zoukankan      html  css  js  c++  java
  • 用java写的后台方法可以提供给C#调用吗?(转)

    最近和公司搞C#的同事联合搞了一个项目,我把我这边的数据加密之后传给C#,然后C#在对接收到的数据解密。可是问题来了,我这边用JAVA加密的数据C#的同事怎么也解密不出来,于是我就想到了可不可以将JAVA解密的方法转成C#的dll文件给到C#那边调用,于是网上搜索了下还真有,下面就说下我的具体操作。

        步骤一:到IKVM官方网站下载IKVM需要的组件 http://sourceforge.net/projects/ikvm/files/ikvm/

                我选的是“0.42.0.3”版本下面的组件,具体如下图所示:

     

    步骤二:将ikvm-0.42.0.3.zip解压到一个路径,我解压到了C:ikvm下面,然后在电脑的环境变量里面加多一个环境变量,变量名为IKVM_HOME,变量值为前面解压的目录“C:ikvmikvm-0.42.0.3”,然后在Path变量里面加入“;%IKVM_HOME%in”就可以了,截图如下:

        步骤三:使用jar命令将已经编译后的java中Class文件进行打包,使用eclipse编译之后找到存放.class文件的classes文件夹,使用命令:“jar cvf test.jar -C classes/ .”,其中test.jar为要生成的jar包;classes/ . 为指定的当前目录classes下的文件,该文件夹包括子文件夹及class文件,生成的test.jar就在classes文件夹的同级目录,当然当前目录你也不一定要指定为classes,还可以指定为classes目录里面的子目录,截图如下:

    步骤四:将上面打包好的jar包转换为.dll控件,执行命令:ikvmc -out:test.dll test.jar,test.dll,其中test.dll为要生成的dll文件名,test.jar就是第三步生成的jar包,截图如下:

    步骤五:     截至步骤四生成dll文件的功能已经完成,接下来就是给C#端调用。C#端除了导入我们生成的dll外,还要导入的dll文件有:

    %IKVM_HOME%/bin/IKVM.OpenJDK.Core.dll
    %IKVM_HOME%/bin/IKVM.Runtime.dll
    %IKVM_HOME%/bin/IKVM.Runtime.JNI.dll

    网上说的是导入上面三个dll文件,但是我发现我还须导入:

    %IKVM_HOME%/bin/IKVM.OpenJDK.Security.dll

    %IKVM_HOME%/bin/IKVM.OpenJDK.Util.dll

    当然那些包要导入不是绝对的,要看具体的功能代码,把dll发给C#调用发现取消那些dll在去%IKVM_HOME%/bin路径下面拷就可以了。

    步骤六:如何调用生成的dll文件里面的方法呢?写法跟在java里面的写法一样。

    例如java代码为:

                    

    1.  
      package com.test;
    2.  
      //要调用的Java类
    3.  
      public class Test {
    4.  
      //要调用的Java方法
    5.  
      public String test() {
    6.  
      return "test is ok";
    7.  
      }
    8.  
      }

    在C#里面调用方式为:

    1.  
      //引入dll文件
    2.  
      using com.test;
    3.  
       
    4.  
      //程序调用
    5.  
      Test test=new Test();
    6.  
      test.test();

    就这样大功告成了。

  • 相关阅读:
    Java读书笔记
    b_aw_旅游计划(树的中心变形)
    b_lc_秋叶收集器(分类讨论dp+滚动数组优化)
    b_lg_涂色(从小区间做起,讨论s[l]和s[r]的关系)
    c_lc_早餐组合(排序+双指针)
    c_aw_鱼塘钓鱼(大根堆)
    b_pat_栈(2*multiset+stack)
    c_pat_推荐系统(set模拟)
    b_lg_时态同步(后序遍历统计每棵子树的最大高度)
    b_lc_统计不开心的朋友(预处理+模拟)
  • 原文地址:https://www.cnblogs.com/DreamRecorder/p/9238676.html
Copyright © 2011-2022 走看看