首先,我的java代码写了一个遗传算法,这是我硕士毕业论文的核心算法,项目是基于C#的web项目。但是现在又不想用C#重写遗传算法代码,于是就想用C#去调用java的代码。在网上找了方法,一般有两种:

1、思路是:先将遗传算法的java代码打包成jar包,然后用ikvm工具将jar包转换成dll文件,最后在C#项目中添加ikvm相关的dll引用和遗传算法的dll引用。

因为我的遗传算法涉及到与oracle数据库通信,因此用了基于java的的oracle驱动包ojdbc6.jar。因此这就需要先使用ikvm来转化ojdbc6.jar为dll文件,然而这个转换却没能成功,因为它又依赖于一堆其他java包。另外ikvm工具需要将class文件中没有package包名,有了包名居然无法识别。我将包名都去掉了才转换成功,然而ojdbc6这个jar包无法转换成功,这也是卵的。因此到此放弃了,花费了我一整天。

 

2、将遗传算法的实现做成一个webservice服务端,然后C#客户端调用即可。