我已经掌握了一个旧的 Microsoft J++ 项目,该项目使用来自 Microsoft Java 虚拟机的一些旧的 Microsoft 特定的东西(现在已弃用且不受支持)。它使用了旧的 Microsoft Java 开发工具包中的其他东西,我在网上的任何地方都找不到。
似乎最好的方法是将此项目迁移到最新版本的 Java,并将 J++ .sln 解决方案文件迁移到 Eclipse 项目文件。
我现在有点不知所措——有什么工具可以帮助简化迁移过程吗?进行此类转换的任何提示?
实际上,我在 Eclipse 上开发了一个 J++ 应用程序多年,使用 Eclipse 作为编辑器,使用 VS 作为编译器。WFC 问题令人望而却步(并且肯定会让您无法移植到直接的 Java),但 Eclipse 仍然能够在关闭编译的情况下将大部分内容作为直接编辑器进行探索和重构。这实际上是我学会爱 Eclipse 的地方。
我们最终相对轻松地将整个 700K+ 行应用程序移植到了 C#。我会避免使用 J#,因为它现在已被弃用。直接使用 C#,将 VS 与 Resharper 一起使用,您几乎会觉得自己在 Eclipse 中。:) C# 转换器非常准确,并且在它知道存在小于 1 对 1 转换的部分留下了有用的评论,其中大部分是次要的。
我会在多个步骤中分解它。
首先让它编译并在 Visual J++ 中。您很可能需要从例如 Ebay 购买二手副本。
然后,当您了解其工作原理时,您可以将微软主义隔离并重构为一般可用的东西。此页面说明了如何使 J++ 与 Sun JRE 一起工作,以便您可以在那里进行初始工作:http: //java3d.j3d.org/tutorials/quick_fix/vis_jpp.html
然后你很可能会有一堆 java 文件,你可以将它们复制粘贴到 Eclipse 中的一个新的 Java 项目中。
J++ 非常不受欢迎,几乎可以肯定您将不得不自己重写/替换走 Java 路线的 WFC 扩展。
您可能(我强调可能)找到使 .net 稍微不那么肮脏的方法——如果您可以获得 Visual Studio.Net(.net 1.0 老式)的副本并使用 J# 升级向导(不确定是否曾经有一个独立的命令行工具);从那时起,您可以使用 Java 语言转换助手(在 VS 2005 中)迁移到 C#——尽管即使该路径也会给您留下一些您需要检查的近似转换,从转换后的代码中大声注释的内容,更微妙的事情,比如 Thread 在 .net 中是sealed
( == final
),而不是在 Java API 中。