这与这个问题非常相似,答案可能对您有所帮助:Compiler to translate Java to C。
简介: 有用于此的工具(Toba、GCJ 等),但您可能会遇到并非所有 Java 库都被移植的问题。最后,工具可能只会完成部分工作,而您必须手动编写其余部分的代码。
良好的第一步是将您的 Java 代码转换为仅使用 Java 1.4 中可用的标准库。事实上,为了简化移植过程,您可能希望尽可能地远离 java.lang.* 或 java.util.* 包中的任何内容。
根据代码库的大小,直接重写批量实际上可能比依赖工具更容易。 Java 和 C 有很多语法相似之处,但是 C 的直接过程代码与 Java 的面向对象特性之间的不匹配可能会导致问题。 尝试解决此问题时,自动化工具可能会生成几乎无法维护的 C 代码,并且始终存在出现细微错误的可能性。
2016 年更新:不要这样做,现在不要,永远不要。用于提供此功能的选项尚未维护(例如 GCJ),并且可以说找到精通 Java 的开发人员比 C 更容易。此外,Java 性能不断提高,基线实现往往具有相似的性能。优化后的 C 仍然更快,但每个 JRE 版本的边缘都变得越来越小。