将Java源代码转换为C++源代码的工具

5
在有人批评我之前,我知道Java到二进制编译器的存在,我不是在寻找这样的工具。我也知道没有完美的工具可以将所有内容无误转换。我知道缺少Java库是一个主要问题; 但是我的源代码并没有使用很多Java库,除了像String和print之类的东西。我只想让工具创建Java源代码引用的类。对于String等内容,我很乐意填补空白或稍后修复。我只是希望工具能够完成翻译中的枯燥部分,以便我不必手动翻译。
至于所需的类等,我会在稍后手动修复,但是我希望得到指针,以便至少完成一些翻译中的枯燥工作。
再次强调,我想翻译源代码,而不是通过编译器生成二进制文件。基本上,我想将一些Java代码转换为C++,以供以后在其他项目中使用。
编辑:附加说明
如果我之前的问题不够清楚,我很抱歉。我有一些Java代码,其中大部分是处理数组和位,并且几乎没有对象创建。从某种意义上说,它非常自包含,几乎没有调用其他类。这些类似乎是转换的最佳候选项;其他内容将必须重新编写,但至少可以利用部分内容。

如果你真的想从C++访问你的Java工具,那么你可以使用JNI而不是移植它们。 - Michael Anderson
可能对于重复内容有答案:http://tangiblesoftwaresolutions.com/Product_Details/Java_to_CPlusPlus_Converter_Details.html,但该工具带有许多注意事项,并且不是免费的。 - Michael Anderson
@jesse 如果我正在请求一个Java->C++的转换,那怎么可能与您提出的相反方向的建议重复呢? - mP.
@michael 不完全是这样,我希望将一些Java类转换为C++,以便可以重用它们所包含的逻辑。重要的部分是“一些”,我知道不可能将所有东西都转换。 - mP.
https://www.tangiblesoftwaresolutions.com/product_details/java_to_cplusplus_converter_details.html - Bahramdun Adil
1个回答

13

J2c是其中一个工具 - 它能够将Java源代码转换成类似C++的等效���码。

显然,正如其他人所提到的那样(垃圾收集,同步等),这里有很多注意事项,但它可提供一个良好的起点(而且它还是开源的,所以你可以轻松地改进它 =)。

根据您的代码库大小,编写自己的转换工具可能也是合理的选择 - 一旦您拥有Java AST,编写工具并不那么难,因为Java语法大多是C++的子集,并且有许多库可以解析Java代码(例如j2c使用Eclipse附带的库)。手动进行转换比编写工具更容易出错。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接