在有人向我射击之前,我知道Java到二进制编译器,我不会追随其中一个。
我也知道没有完美的工具可以毫无问题地转换所有东西。我知道缺少Java库是一个主要问题;但是我的源代码不会使用许多Java库,除了像String和print之类的东西。我只想使用该工具来创建Java源引用的类。在字符串的情况下,我很乐意填补空白或在稍后阶段修复。我只是想让工具做无聊的工作,所以我不必手动进行翻译。
对于必需的类等,我将在稍后的阶段手动修复它们,但是会欣赏指向某些东西的指针,这些指针至少可以完成无聊的工作。
我再次想要翻译源代码而不是编译器来生成二进制文件。基本上我想要一些Java东西并将其转换为C ++,以便以后在其他项目中使用。
EDIT 附加说明
很抱歉,如果我在此问题的前一部分中不清楚。我知道Java与C ++有很大的不同。我有一些Java代码,主要是处理数组和位,几乎没有对象创建。从某种意义上说,它是非常独立的,几乎没有其他类的调用。这些类似乎是转换的主要候选者;其他的东西必须重写,但至少有些部分是杠杆化的。
答案 0 :(得分:13)
j2c是一个 - 它将Java源代码转换为粗略的C ++等价物。
显然,其他人已经提到了许多警告(垃圾收集,同步等),但它会提供一个很好的起点(并且它是开源的,所以你可以很容易地改善这一点=)。
根据代码库的大小,自己编写卷也可能有意义 - 考虑到Java语法主要是C ++的一个子集,编写一个并不是那么难以使用Java AST。并且有许多库将为您解析Java代码(例如,j2c使用Eclipse附带的代码)。手动进行转换比为其编写工具更容易出错。