C#.NET调用jar包(java环境配置及ikvm安装)

时间:2024-05-20 15:46:04

在ASP.NET(C#)项目中需要调用java中的方法,在VS平台中简单调用jar包的方法就是将jar包转换成dll库,之后 通过引用dll库,就可以直接使用java中的类了。C#语言和Java语言有着很多相似之处,其中的jar包和dll库就是非常相似的。
java se 6环境配置
注意:java环境需要安装 java SE 6 版本  ,否则会出现源码格式无法识别的问题
简单说下java 安装:
1.去官方网站下载jdk 
JAVA SE 6 :http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html

C#.NET调用jar包(java环境配置及ikvm安装)
2.下载安装包后直接安装即可,然后需要对环境变量进行配置

新建  CLASSPATH(最前面需要加 【.;】点号和分号表示在所有目录下都可以使用java类)
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

新建 JAVA_HOME (设置为安装jdk的目录)
C:\Program Files (x86)\Java\jdk1.6.0_43

PATH变量中添加
;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

3.运行cmd命令进行测试 

C#.NET调用jar包(java环境配置及ikvm安装)
4.编译一个java文件进行测试 

C#.NET调用jar包(java环境配置及ikvm安装)
5.编译后并将创建的该类打包为jar文件

C#.NET调用jar包(java环境配置及ikvm安装)

IKVM.NET使用
Java环境配置后,需要下载一个IKVM.NET的工具 
IKVM.NET :http://www.ikvm.net/

C#.NET调用jar包(java环境配置及ikvm安装)
去Download页面,下载 ikvmbin-7.2.4630.5 包,之后将其解压,并在【环境变量】->【系统变量】中设置path路径,路径为解压的目录

;D:\ikvm\bin

安装完成后,可以开始将jar包转为dll库,使用一个命令即可

ikvmc -out:ikDllName.dll TestHw.jar //将jar文件转换成dll类库

从java源码到dll库用到的cmd命令如下图 

C#.NET调用jar包(java环境配置及ikvm安装)
javac HwJavaClass.java
jar cvf HwJarName.jar HwJavaClass.class
ikvmc -out:HwDllname.dll HwJarName.jar

在VS中使用jar转换后的dll库
这里直接在ASP.NET项目中新建web窗体;引用IKVM创建的dll库(除了自己创建的还需要引用另外三个IKVM自身的dll库,在解压目录的bin文件下) 

C#.NET调用jar包(java环境配置及ikvm安装)
HwDllname.dll 
IKVM.OpenJDK.Core.dll 
IKVM.Runtime.dll 
IKVM.Runtime.JNI.dll

之后,可看到dll库中存在命名空间和类方法 

C#.NET调用jar包(java环境配置及ikvm安装)

C#.NET调用jar包(java环境配置及ikvm安装)
代码如下:

using System;

using nameSpaceH;       //package nameSpaceH

namespace ADOTest
{
    public partial class test123 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            HwJavaClass mao = new HwJavaClass();    //public class HwJavaClass(){}
            string a = mao.returnString();

            Response.Write(a);

        }
    }
}

DLL动态链接库: 
DLL文件中存放的是各类程序的函数(子过程)实现过程,当程序需要调用函数时需要先载入DLL,然后取得函数的地址,最后进行调用。使用DLL文件的好处是程序不需要在运行之初加载所有代码,只有在程序需要某个函数的时候才从DLL中取出。另外,使用DLL文件还可以减小程序的体积。

打开控制面板,程序,打开或关闭windows功能,勾选telnet客户端 
然后输入

telnet towel.blinkenlights.nl 
可以看到dos版星球大战

输入

shutdown -s -t 3600 
shutdown -a 
定时关机30分钟之后,-a注销命令