gpt4 book ai didi

java - 将 SWT 应用程序编译为 native 的优点和缺点

转载 作者:行者123 更新时间:2023-11-30 05:00:13 26 4
gpt4 key购买 nike

谁成功地将 Java 业务项目编译为原生(例如使用 GCJ 或 Excelsior JET)并可以分享优点和缺点?

我认为有以下优点:

  • 速度更快(用户的机器不需要将字节码编译为 native 代码)
  • 黑客入侵的可能性较小
  • 不需要单独的 Java 运行时

以及以下缺点:

  • 需要为每个平台进行特殊构建才能支持(但这已经是 SWT 所必需的)
  • 某些功能(例如反射)可能无法使用?
  • 更难定位错误(堆栈跟踪又如何)?

最佳答案

我使用 Excelsior JET 编译了 SWT app to native for Windows .

这是不久前的事了,从那时起他们已经极大地改进了该工具,但 JVM 速度也相应提高了。内存使用量并没有那么多,但现在即使是低端笔记本电脑也有 GB 的 RAM,虽然这可能会让我们的节俭意识感到厌恶,但如果您的小型 GUI 应用程序在一个至少具有 20MB 内存的盒子上使用 20MB 内存,那真的没关系50 倍,尤其是当您考虑到在这种环境中进行开发的优势时。

静态编译的主要原因是启动时间和内存使用。 JET 给了我这些,但代价是构建周期很长,由于动态加载与静态编译冲突而导致缺少类的错误(我相信他们已经改进了很多)和特定于平台的构建(您必须构建Windows 上的 Windows 发行版)。最终,摩尔定律和 JVM 速度使得这些权衡变得不值得,我放弃了这个构建选项。

FWIW,堆栈跟踪和反射都很好,动态类加载也很好,如果您确保编译器知道未静态引用的类。如果您担心反编译,那么混淆器可能会为您提供同样多的帮助。

对于 JET 和创造它的人们,我除了好话之外没有什么要说的。如果您需要这样做,JET 是一款可靠的产品。

关于java - 将 SWT 应用程序编译为 native 的优点和缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7016491/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com