GCJ(GNU Compiler for Java)是发布Web应用程序的可行工具吗?

2022-09-04 21:34:27

使用 GCJ 发布服务器端应用程序真的可行吗?网络应用?

我的老板确信,将我们(我的)web应用程序编译成二进制可执行文件是一个绝妙的主意。(话又说回来,他喜欢漂亮、简单、有闪烁灯光的小东西,他能听懂。他本能地认为这没有问题,而我只看到无穷无尽的问题和退化。一旦我开始和他谈论我们平台的复杂性,以及更深入的字节码,JVM,库,操作系统之间的差异,处理器架构等的细节......井。。。他的眼睛瞪得瞪大,他微笑着,他已经明确表示,他认为我是幼稚的抵抗。

为什么他想要一个魔法可执行文件?他看到了几个“好处”:

  • 如果它是二进制可执行文件,则很难进行逆向工程并规避任何许可。管理层一直担心这种情况正在发生,即使我们向通常不用服务器软件作弊的大型企业销售产品。
  • 有一种愿景是下载这个神奇的可执行文件,运行它,一切正常。(不再派我出去做客户安装,这并不常见。

所以,我已经完成了强制性的20分钟的谷歌搜索,现在我在这里。

关于我的应用程序的一些背景知识:

它由什么制成:

  • Java 6 (Sun's JVM)
  • AspectJ 1.6
  • 雄猫 6
  • 休眠 3
  • 春季 2
  • 另外二十多个支持jar文件

它的作用

  • 流媒体内容管理系统
  • 性能敏感
  • 部署在Linux,Solaris,Windows上(并在Mac上开发)

正如你可能收集到的,我对这种“将Java编译为本机代码”的事情持高度怀疑态度。这听起来像是Mono(Linux上的VB)在2000年的位置。但我是不是太悲观了?可行吗?我应该花时间(如果不是几周甚至几周)来尝试一下吗?

还有一个类似的线程(Java编译器选项来生成.exe文件),但它有点太简单了,链接过时了,并且不是真正面向服务器端的问题。

亲爱的SOpedians,您的知情意见将受到高度珍惜!哎呀!


答案 1

我不了解GCJ,但我的公司成功地使用了Excelsior JET。我们还没有使用web应用程序完成此操作,但它应该能够处理Sun JRE可以处理的任何内容。事实上,JET是一个经过Sun认证的Java实现。


答案 2

FWIW:我从来没有在GCJ上过好运气,我在使用它时遇到了很多问题,并且出现了一些晦涩难懂的问题,这些问题需要永远诊断给GCJ而不是我(我总是非常非常不愿意将事情归咎于外部库)。我会公开承认这发生在几年前,我再也不想靠近GCJ了。为了提供更多的实质内容,这是我在学校的时候,并且正在研究一个几乎微不足道的项目,所以在“企业层面”上,我对GCJ有一种健康的恐惧。


推荐