2011-10-31 42 views
0

有没有Java - > C/C++转换器?那么我希望没有。Java to C/C++,或至少得到Java转换代码

但我知道Java通过将Java字节码转换为操作系统可以使用JIT理解的代码。那么有什么办法可以得到这个“转换后的代码”?

谢谢。


感谢Baltasarq,谁把我正确的轨道上,我开始寻找时间编译器的未来,令人惊讶的是,我发现它包含在GCC GCJ(我认为,最近的?)。它正是我想要的。拿一个Java文件,把它变成一个EXE。但是,它需要44 DLLS的简单打印“Hello World”应用程序。嗯:D

+1

Java语言很简单,但是它大量使用JDK和第三方应用程序中的库。这是你必须手动转换代码的地方。 –

回答

0

我不知道是否有办法让JIT代码发出〜它是一个运行时转换,在1000或10,000之后通过代码路径的一部分完成 - 我确信可以得到这个“转换后的代码”!但是你说的是源代码,无论如何JVM在字节代码上运行1000或10,000之后,它甚至会尝试将JIT带入int中,或者只能在字节代码上运行

对我而言似乎没有知道你的需求在哪里我会认为手工编写代码会更快 - 如果我需要一个短循环或某些东西来解释某些bode的东西,我可以用手工做得比找到一些工具更快

there实际上是作为标准安装的一部分而出现的自卸车〜我知道它的工作原理是因为我在源文件注释中保存了一些代码,它在那里做了它

0

有没有Java - > C/C++转换器?那么我希望没有。

那么,有一些项目,但没有人知道这是生产质量。大多数情况下,它们都转化为C,因为C++提供的附加功能与Java所做的不一致。谷歌搜索会给你不少项目。也看到了这个问题:

Does a Java to C++ converter/tool exist?

但我知道Java的工作是将在Java字节码,成 操作系统可以了解使用JIT代码。那么有什么办法可以得到这个 “转换后的代码”?

不,我不知道。您理论上可以使用HotSpot源代码(它可作为OpenJDK的一部分提供),并插入日志语句以转储生成的机器代码。我不知道有没有人做过。

2

但我知道Java的工作原理是将Java字节码转换成操作系统可以使用JIT理解的代码。那么有什么办法可以得到这个“转换后的代码”?

你说的是“提前编译代码”,或者至少这是它在Mono项目中获得的名称(免费实现.NET/C#)。如果您对此感兴趣,可以将代码从Java转换为C#(这至少比C++更简单),然后利用此功能。甚至有一个专门用于此目的的工具:mkbundle