在Java项目中使用C#编写的DLL

在Java项目中使用C#编写的DLL,c#,java,dll,C#,Java,Dll,我正在从事一个Java项目,我不太熟悉Java的使用 我通常在我的计算机视觉项目中使用C#with a forge 现在我必须使用Java,我想使用用C编写的aforge DLL# 有办法做到这一点吗 谢谢你不同的编译器都没用,这是不可能的。除非您在VisualStudio中使用java sharp语言,否则编译器将无法运行。您将不得不使用本机调用,这将a)非常令人恼火,无法跟上最新信息;B)无法利用java跨平台的巨大优势 您最好的选择可能是尝试找到能够将C#转换为java的东西——或者更好地

我正在从事一个Java项目,我不太熟悉Java的使用 我通常在我的计算机视觉项目中使用C#with a forge 现在我必须使用Java,我想使用用C编写的aforge DLL# 有办法做到这一点吗


谢谢你

不同的编译器都没用,这是不可能的。除非您在VisualStudio中使用java sharp语言,否则编译器将无法运行。

您将不得不使用本机调用,这将a)非常令人恼火,无法跟上最新信息;B)无法利用java跨平台的巨大优势

您最好的选择可能是尝试找到能够将C#转换为java的东西——或者更好地将您的C#代码重新编码为java


从长远来看,这将为你节省很多压力。

不确定这种可能性,但你的想法不太好。 你仍然可以使用COM或者hook或者尝试ngen,但是这些方法都很奇怪

Java与C#非常相似。尝试用Java或类似的语言编写代码,我认为用基于JVM的语言为JVM编写代码要容易得多。

这是可能的,但您需要做一些工作才能让它们正确调用。我自己从来没有这样做过,但在有更好的人来回答这个问题之前,这里有几个地方可以开始

看看JNI(Java本机接口,google或wikipedia可以告诉你更多),它可以让你从Java调用其他语言。似乎有一个名为jni4net()的项目,它的目的正是要做您想要做的事情,但目前它在alpha中,可能不够稳定。不过还是值得一看

您也可以自己做,通过JNI作为C调用调用,最终将通过CLR调用,但这看起来需要很大的努力。我知道这不是一个快速简单的解决方案,但它可能会给你一些地方开始。也似乎是一个相当好的看如何去做


不过,正如目前所有其他答案所说的那样,这是一种烦躁和痛苦。如果你能做些别的事情,那可能是值得的。

看看这个堆栈溢出问题:

我的建议是寻找一个java的AI库。