用于64位系统的Java AOT编译器

用于64位系统的Java AOT编译器,java,64-bit,aot,Java,64 Bit,Aot,我需要我的应用程序在没有安装jre的情况下是可执行的。它还使用rxtx,32位和64位系统有不同的JAR和DLL。是否有支持64位系统的Windows Java AOT编译器?我在google上所做的只是Excelsior Jet有一些alpha版本,但我不知道是否(或如何)可以在那里生成最终的exe。你可以看看J9,它支持AOT,并且应该存在于64版本中,根据我会使用java to exe包装(例如Launch4j)、JRE捆绑和安装程序生成器的组合(例如InnoSetup)。捆绑一个完整的J

我需要我的应用程序在没有安装jre的情况下是可执行的。它还使用rxtx,32位和64位系统有不同的JAR和DLL。是否有支持64位系统的Windows Java AOT编译器?我在google上所做的只是Excelsior Jet有一些alpha版本,但我不知道是否(或如何)可以在那里生成最终的exe。

你可以看看J9,它支持AOT,并且应该存在于64版本中,根据

我会使用java to exe包装(例如Launch4j)、JRE捆绑和安装程序生成器的组合(例如InnoSetup)。捆绑一个完整的JRE只会为安装程序增加大约20MB的内存(通过从JRE中剥离不需要的内容,您可以节省几MB的内存)

我使用上述组合向分包商(通常是完整的计算机假人)提供(公司专用)应用程序。您可以使用安装程序管理所有目标计算机自定义(例如,为以后的更新设置对已安装文件的正确访问权)


你也可以考虑不提供任何专门的64位版本来缩小大小。如果程序运行在32位的VM上,那么在64位(JRE)版本中,用户就没有附加值。在大多数情况下,性能差异是可忽略的,如果你没有使用特别大的堆(>1GB)。提供额外的64位JRE是浪费时间的。

通过捆绑JRE和生成本机启动器(使用类似的方式),最容易让Java在安装了JRE的情况下运行不需要JRE的.True AOT编译非常困难且罕见。忘了提及,大型可执行文件也是不可接受的。当捆绑整个JRE时,您会获得超过100 Mb的空间。然后将JRE作为.zip文件提供,并在安装过程中对其进行解压缩。问题是,大多数情况下,提供您自己捆绑的JRE都是g我想这是一个更简单的解决方案。如果我找不到更好的解决方案,我可能不得不这么做(我如何“剃掉”未使用的东西?我想我需要64位jre,因为rxtx在不同的平台上使用不同的JAR。我错了吗?“剃掉”=从您想要捆绑的JRE安装中删除内容。示例将是捆绑中不需要的bin目录中的内容(需要一些猜测和尝试才能找到您不需要的内容。候选对象将是bin中的exe,而不是java/javaw、插件等)。如果您真的需要安装64位版本的rxtx,请进行测试(如果您使用32位VM,则32位dll最有可能与之配合使用)。最后,由于安装程序中的压缩,两个JRE的成本可能不到两倍(请尝试InnoSetup中的lzma/ultra64)。此外,还可以选择只提供两个安装程序,一个用于32位版本,另一个用于64位版本。这取决于您的用户的智能程度。