是否可以将x86 32位汇编代码转换为等效的JVM字节码并执行它?

时间:2011-08-28 17:16:40

标签: java assembly jvm bytecode

是否可以将x86 32位汇编代码转换为等效的JVM字节码并执行它?

我有一个.so形式的Fortran库。我想使用GDB对它执行汇编转储,然后使用某种转换器将其转换为有效的JVM字节码。

这甚至可能吗?

为简单起见,我们假设我不再关心平台独立性了。程序集和字节码都将在同一台机器上运行。

1 个答案:

答案 0 :(得分:6)

可能几乎所有东西,但我不认为你会找到一个为你做这个的工具 - 因此你必须手动完成,这可能需要几周或几个月,具体取决于库的大小。 当然,如果编译的图书馆是商业图书馆或受版权保护,这可能会引起法律问题。

在我看来,更好的方法是在C / C ++中开发一个小的Java Native Interface (JNI)包装器并将库链接到它。然后,您将能够从Java调用库函数。

如果您可以获取Fortran源代码,可以尝试使用Fortran-to-Java之类的JVM-Fortran编译器。然后你会得到原生的JVM字节码。