使用非Sun JRE / JDK的动机是什么?

时间:2010-10-12 14:23:41

标签: java

This问题让我思考,假设Sun JDK可用,为什么我会使用其他任何东西?使用不同的编译器有一个很好的技术原因吗?

4 个答案:

答案 0 :(得分:1)

嗯,我确信人们没有意识到这一点,但Eclipse有自己的编译器。因此,当您使用Eclipse时,您使用的是nun-Sun(Oracle)JDK。

使用它也有很多好处。首先,Eclipse实际上内置了一些编译器。提供最大好处的IMO是在您键入时提供红色下划线的那个。

Eclipse编译器所做的另一件事是“编译”uncompilabe代码。因此,如果您运行一段代码,并且从未点击无法编译的代码,代码将运行而不会出错。否则你得到一个NotYetCompiledException。 (或类似的东西)

答案 1 :(得分:1)

很多人回答的问题不同于你提出的问题。用于编译代码的JDK与用于运行代码的JVM不同。

由于大多数优化都发生在JIT中,因此编译器生成的代码质量不是很重要。这留下了使用特定JDK的原因:

  1. 编译性能。 IBM Jikes曾经是一个非常快速的编译器。
  2. 错误报告。 IDE内置的编译器通常具有出色的错误报告功能。
  3. 符合标准。例如,IBM曾一度在StringBuilder中提供了额外的重载方法。如果在编译时选择了该重载,那么您的代码将在运行时在Sun JVM上失败。

答案 2 :(得分:0)

如果您是WebLogic用户,JRockit非常有意义。这是一个了不起的JVM。不过,我不确定它是否可以在所有操作系统上运行。

答案 3 :(得分:0)

等一下,如果您使用JRockIt或其他任何JRE,您将失去便携性,无论商业广告告诉您:它绝不是100%便携式,也不是100%标准。

事实上,许多人考虑让你切换拥抱的JRE部分,扩展和熄灭策略,有时是解决问题的“唯一推荐方式”。

http://en.wikipedia.org/wiki/Embrace,_extend_and_extinguish

承诺,我多年前遭受了损失并付出了代价:(

相关问题