C#和Java交互相关研究
之前总觉得C#和Java可以交互应用,但是由于时间以及其他方面的原因,一直没有调研。今天抽空搜了一下,终于折腾出来了。
以下是我自己就C#和Java整合的一些提问和分析,如果有不对的地方,请路过的各位大虾给予指出。3Q!
问题来了:
1、C#和Java如何整合?
2、为什么C#(.Net)要和Java整合?
3、Java和C#整合时,Java主要扮演什么角色?C#扮演什么角色?
答案一一揭晓:
1、C#和Java整合大致有4条路可以走。
1.1 把Java包转换为DLL或者EXE后注册为com组件,之后调用;
1.2 使用web service;(http://www.codeproject.com/Articles/32313/How-to-invoke-Java-web-service-in-ASP-net-using-C)
1.3 使用中间件;比如一个商业的中间件:http://j-integra.intrinsyc.com/;
1.4 使用 IKVM.NET,这是一个在.net 下实现的Java VM,所以在经过一个转换后,直接跑Java的东西;
(以上4点,是我在网上搜的)
我主要说第四点:使用IKVM.NET。
a:下载ikvm-0.40.0.1.zip;ikvmbin-0.40.0.1.zip;openjdk6-b12-stripped.zip;
解压ikvm-0.40.0.1.zip,并将%IKVM_HOME%\bin添加到path中。此处的%IKVM_HOME%是指解压后ikvm的主目录。
b:建立一个JavaProject,自定义包、类、需要透露给外界的方法,然后、将这个JavaProject打包成jar文件。(eclipse和myeclipse都自带的,或者你可以显摆一下,用黑框框敲几个代码整)。
c:狸猫换太子:jar>>dll
打开黑框框(即:win+r,cmd,进入到%IKVM_HOME%\bin的目录下),
执行:ikvmc -out:dllFileNameOrPath.dll javaFileNameOrPath.jar
此时,就会在%IKVM_HOME%\bin目录下或者指定的Path下,会出现一个dllFileNameOrPath.dll文件,置于你的.Net项目中,添加引用,与此同时,请将
%IKVM_HOME%\bin\IKVM.OpenJDK.Core.dll
%IKVM_HOME%\bin\IKVM.Runtime.dll
%IKVM_HOME%\bin\IKVM.Runtime.JNI.dll
添加到你的.Net项目中,切记!
其中,using 后面跟java类的包名。
2、C#和Java整合,不,应该是.Net和Java整合。为啥要整合?
在业间,有人士称,.Net开发除服务层以外的,开发速度快,效率高。而Java做后台服务,安全性、可扩展性高。所以才有牛人将两者整合。目前.Net和Java整合技术的应用,算是一个新旗帜,但目前已经被应用于实际开发了。
3、正如2所说,.Net和Java整合,Java主要承担DAL,也就是和DB进行主要的交互,以及其他通信。而.Net主要承担BLL。
以上是小弟的分析,如果说的不对,请各位路过大神指正!
谢谢!
C#和Java交互相关研究的更多相关文章
- 在最完整的搜索提示降史上的用户交互的研究——阅读《An Eye-tracking Study of User Interactions with Query Auto Completion》
搜索下拉提示(Query Auto Completion,简称QAC)如今差点儿是每一个搜索引擎必备的基本功能,作用是在用户在搜索框输入查询词的过程中,给用户展示一系列搜索查询quer ...
- SLAM+语音机器人DIY系列:(七)语音交互与自然语言处理——1.语音交互相关技术
摘要 这一章将进入机器人语音交互的学习,让机器人能跟人进行语音对话交流.这是一件很酷的事情,本章将涉及到语音识别.语音合成.自然语言处理方面的知识.本章内容: 1.语音交互相关技术 2.机器人语音交互 ...
- Java web相关内容
我们即将学习Java web 这是通过查阅资料找到的和Java web 相关的内容. 一:Java web的含义 JavaWeb,是用Java技术来解决相关web互联网领域的技术总和.web包括:we ...
- JAVA开发相关
JAVA开发相关1. IntelliJ IDEA开发工具熟练使用2. Maven3. Spring框架(IoC.AOP) 1)数据库相关MyBatis 2)数据库连接池 3)事务.多数据源.跨数据库分 ...
- Flex使用Blazeds与Java交互及自定义对象转换详解-DATAGRID读取ORACLE数据
http://www.cnblogs.com/RocD-DuPeng/articles/1751040.html 一.建立Flex与Java交互的工程. 本文中讲到的交互是利用Blazeds的,因为这 ...
- 获取Java系统相关信息
package com.test; import java.util.Properties; import java.util.Map.Entry; import org.junit.Test; pu ...
- java接口相关例题
java接口相关习题 interface Graphics{ //接口里面只能用抽象方法 public abstract double area(); }//设置 平面类class Plan ...
- java线程相关
java线程相关 java 线程 1 线程的状态 This is an example of UML protocol state machine diagram showing thread sta ...
- 关于UIView用户交互相关的属性和方法
UIView除了负责展示内容给用户外还负责响应用户事件 1.交互相关的属性 userInteractionEnabled 默认是YES ,如果设置为NO则不响应用户事件,并且把当前控件从事件队列中删除 ...
随机推荐
- openstack架构设计(一)
下图描述了最常见的Openstack集成服务和各服务之间如何交互的逻辑架构. 一. 计算架构 当设计和构建计算结点时,需要考虑处理器,内存.网络.和存储资源等信息.它也是openstack的核心部分. ...
- LCA:Tarjan算法实现
本博文转自http://www.cnblogs.com/JVxie/p/4854719.html,转载请注明出处 首先是最近公共祖先的概念(什么是最近公共祖先?): 在一棵没有环的树上,每个节点肯定有 ...
- NEO4j简单入门
Neo4j是: 一个开源 无Schema 没有SQL 图形数据库 图形数据库也称为图形数据库管理系统或GDBMS. Neo4j的官方网站:http://www.neo4j.org Neo4j的优点 它 ...
- FastReport.Net使用:[14]文本控件使用
文本控件(Text)是FastReport中最常用的控件了,它可以是一行\多行文本.数据源的列.报表参数.汇总值.表达式,它还可以是以上任何元素的组合. 如何使用文本编辑器 1.双击文本框进入文本编辑 ...
- 【BZOJ 3307】 3307: 雨天的尾巴 (线段树+树链剖分)
3307: 雨天的尾巴 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 458 Solved: 210 Description N个点,形成一个树状结 ...
- ARGB 8888 内存大小
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha 4字节 argb 各占8个bit
- python3-开发进阶Flask的基础(3)
上篇我们大概简单描述了一下上下文管理,这篇来具体来说说, 上下管理的request 上下管理的session 第三方组件:flask-session pymysql操作数据库 数据库连接池 一.前奏 ...
- python爬虫我是斗图之王
python爬虫我是斗图之王 本文会以斗图啦网站为例,爬取所有表情包. 阅读之前需要对线程池.连接池.正则表达式稍作了解. 分析网站 页面url分析 打开斗图啦网站,简单翻阅之后发现最新表情每页包含的 ...
- JDK源码(1.7) -- java.util.Deque<E>
java.util.Deque<E> 源码分析(JDK1.7) -------------------------------------------------------------- ...
- Codeforces Beta Round #8 A. Train and Peter KMP
A. Train and Peter 题目连接: http://www.codeforces.com/contest/8/problem/A Description Peter likes to tr ...