Java 到 C 的交叉编译

标签 java c compiler-construction transpiler

<分区>

有人知道一个好的 Java 到 C 交叉编译器吗?

它们工作得好吗?

最佳答案

这与这个问题非常相似,答案可能对你有帮助: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 版本的优势都越来越小。

关于Java 到 C 的交叉编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2185598/

相关文章:

C 程序读取两个模式之间的文件行并将其打印出来

android - 错误 :undefined reference to 'pthread_testcancel' when compile with NDK

java - 使用 GroupLayout 将 JLabel 置于 JPanel 中

java - 一种将 appengine 数据存储实体转换为我的对象的方法?

java - 使用 JTable 显示 Arraylist 的值

Python 高速 memcpy

java - 如何将未选定的项目从列表移动到另一个列表?列表

c - 关于C函数原型(prototype)和编译的问题

linux - 如何告诉 "gmake"使用另一个版本的 GCC? (Linux)

c++ - 带有 C++ 编译器包的 Eclipse