Java和C#之间的桥梁

5
我被分配了一个任务,要在C#和Java之间创建一个桥梁。据说如果我们现在使用C#,然后从其他地方收到一个Java文件,我们应该能够将该Java文件转换为.NET,以便与我们的软件兼容。问题是我不知道该怎么做或者如何开始这个任务。有什么建议或意见吗? 据说我最初必须制作平台无关的类,如果这有帮助的话。 *编辑:如果我没有表达清楚很抱歉,因为我自己也不完全理解这个任务,这就是为什么我来这里的原因。但据我所知,我确实必须创建桥梁,以便我可以从我的.NET文件中调用源Java代码。我有几个月的时间来完成它,因此我认为我必须使Java中的每个库都与C#兼容。 我寻找帮助,并找到了一些类似的项目:JNBridge(付费使用),Tangible(免费演示)和Janett(开源),这就是我基于的意见。 **编辑:比如说我在Java中创建了一个计算器类。我想在C#中创建该类的实例。

5
Java文件是指Java源代码或由Java或其他语言开发的系统发送的数据。 - kosa
你是想要(1)从C#与现有的Java编译代码进行通信(就像“桥梁”一样),还是(2)将Java代码移植到C#(“将Java文件转换为.NET”)?就这个问题而言,你的问题并不清楚。这两件事情/任务完全不同。 - James Johnston
这是一个相当棘手的任务……如果你指的是源代码,这甚至可能行不通吗?C#和Java有相当强的相似之处,但某些构造在Java中根本不存在,反之亦然。例如Linq、代理,动态类型,匿名对象等。 - Nadir Muzaffar
你可以尝试使用JLCA,虽然我从未使用过,并且怀疑它是否适用于VS 2005之后的版本。这里有更多信息:http://msdn.microsoft.com/en-us/magazine/cc163422.aspx - Tim Schmelter
2
@CodeCaster,请尝试使用IKVM。我用它将Lucene、Jericho Html Parser、Mobile Atlas Creator等二进制文件转换为.Net,并在许多项目中使用。这不是玩笑,是真的。我真的无法相信这种无知。 - L.B
显示剩余7条评论
3个回答

5

我从未使用过这个,IKVM.NET可能值得一试。

IKVM.NET is an implementation of Java for Mono and the Microsoft .NET Framework. It includes the following components:

- A Java Virtual Machine implemented in .NET
- A .NET implementation of the Java class libraries
- Tools that enable Java and .NET interoperability

我曾经见过这个词,是在使用一种基于.NET的专有CMS时。那个程序集被使用了,但我不确定它的作用。


1
我不知道我怎么错过了IKVM,但我认为我需要做出类似的东西,因为它可以将Java库转换为.NET。 - Alexey

0
根据情况,有大量的集成技术可用于连接两个系统。实际上,有一整套软件体系结构 范例 专门用于此称为面向服务的架构。用于服务间通信的任何技术都可以用于集成 任何 两个系统,无论大小。当然,存在权衡,但总会有的。 没有关于所涉及的系统和所需集成级别的更多信息,对于这个问题很难找到确定性答案。

0
根据你对桥梁功能的解释,JNBridge似乎能很好地解决你的问题,并节省大量重复造轮子的时间。如果有任何问题,请通过JNBridge的网站联系我们。 (声明:是的,我在JNBridge工作。)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,