2
Java AOT编译器如何工作?
有几种工具(Excelsior JET等)声称可以将Java应用程序转换为本地可执行文件(*.exe)。但是据我了解,这些工具实际上只是在创建java从外壳程序或命令行调用/执行的本机包装。 如果这种理解是不正确的,我不知道怎么可能。如果正在运行的JVM(java进程)本质上是一种高性能的解释器,则是从Java类文件中动态加载字节码,那么我看不出Java应用程序(用作JVM输入的字节码文件的集合)是怎么回事。真正转换为可执行文件。 这是因为JVM进程已经是本机可执行文件,它将字节码文件集作为输入。如果不完全重写JVM并脱离JVM规范,将这些字节码文件和JVM进程合并为一个统一的本机可执行文件似乎是不可能的。 因此,我问:这些工具实际上是如何将Java类文件“转换”为本地可执行文件的?