如何把Java项目向c#移植?如果要移植一个比较复杂的项目,这样的工作大概应该怎么做,难点是什么
请高手指点下,或给点相关资料,我邮箱[email protected],谢谢

解决方案 »

  1.   

    公司有java版本的,现在想推个.Net版本的出来
      

  2.   

    VisualStudio2005,文件-打开-转换,将Java语言项目转换为Visual C#项目。
    没用过。
      

  3.   

    我初步整理了下我所知道的一些内容,请高手指点修正,谢谢:一个Java项目转到C#项目将是一个较大的工程,极易出现许多不可预料的问题,所以在转换前首先要考虑清楚是否一定有这个必要,如果确定必需转换那么至少需要对java和C#.Net有足够的了解和认识,并且对整个项目非常了解,大项目尤其如此。
    在转换前我想我们应该先做好以下准备工作:
    1. 整理好需求分析,业务逻辑,对项目的各个模块有足够的了解;
    2. 确定技术准备是否足够充分。
    3. 对转换过程中可能预到的困难要有充分的准备。
    现在我们可以开始转换了。微软为我们提供了一个强大的转换工具JLCA(Java Language Conversion Assistant),他可以将整个项目中的java代码转换成C#代码,在一些小项目中他基本可以帮我们完成90%的工作,但是在一些大型的复杂的项目中JLCA能做的就比较有限了,主要还是需要我们自己来做,而且这部分工作还不少,例如:
    1. 注释的修改,以前java中的注释放在C#里有些已经不能很好的说明情况甚至让人觉得莫名其妙;
    2. 一些字符串的修改,如数据库连接字符串,我们知道java连接数据库是能过JDBC实现的,而C#一般是通过ADO.Net连接,他们的连接字符串是不一样的;
    3. 如果是WinForm程序可能还涉及到窗体,比如字体,在C#中窗体默认字体是:Microsoft SansSerif,字号为8.25这和java中是不一样的;
    4. 还有一些函数转换是否准确,如java中的Date.getTime()转换到C#.Net中是DateTime.Tikes,我们知道Date.getTime()返回的是一个long型的毫秒数,而DateTime.Tikes返回的是以100纳秒为单位的long型数,很明显他们在数量级上存在差别,但JLCA并没有做这样的转换,而且这样的问题只会在运行的时候才能发现,所以这必需要求我们对这两种语言有足够的认识和经验才能检查出来。还有一些类似的问题,这让我们转换后的程序存在很大的潜在危险。
    5. 另外一些数据类型的值的限定两者也有不一样的地方:如java中Date类型可以有”0-0-1”这样格式的日期类型,但在C#中这是不合法的。
    6. 尤其是在一个比较复杂的项目中,会涉及架构和柜架等问题,这时候转换工作基本相当于重新开发了,例如:我们知道,在java中存在很多的ORM模型,而在C#中并没有相应的模型与之对应,如果一个java项目应用了这些模型就让转换的工作量变得相当大了。
    7. 对所有修改完成后,再一次的测试也是免不了的,像第5点这样的问题或许只会在大量的测试中才有可能发现这样的问题。
    当然,实际转换中远远不只这些问题,尤其是在大项目中,我认为其中最困难的是上面的第4点和第6点,尤其是第6点,因此,我觉得在有些项目中,与其进行转换不如重新开发更好,因为第一可以避免上面提到的问题,尽量减少潜在危险,第二,C#中有许多新特性是java中没有的,这些特性往往能给我们的软件设计带来很大的方便和对软件的性能有不错的提高,而在有些项目中,这些正是我们所需要的。
      

  4.   

    有谁知道Java的项目可以直接转为J#的?
      

  5.   

    java是跨平台的语言,而C#是跨语言的平台,你要是想把Java项目移植到C#中,你需要一个C#的开发环境,里面可以将Java项目倒过去的,我也没有试过。你试试看了,vs很强大的。