2011-09-23 44 views
2

我们的团队使用Eclipse Helios SR1。我们为Windows 7/2008上的Tomcat 6和Java 6开发。我们保持最新的Java 6和Tomcat 6的最新版本。我们每年更新Tomcat主机和所有开发人员工作站上的JDK/JVM。Eclipse如何与Java更新保持同步?

但我从来没有理解Eclipse如何跟上最新的JDK更新。我看到引用的JRE系统库全部来自c:\ program files \ java \ jre6 \ lib,它随每个JDK更新而更新。所以被调用的库是最新的。但我认为Eclipse的编译器是Eclipse的内部?

我猜测每个JDK更新都有一个新的javac.exe。但我们从不做任何事情来更新Eclipse的内部编译器。我们需要与我们的JDK更新一起来更新Eclipse吗?

谢谢

回答

2

您所看到的引用的JRE系统库是从以下位置开始的JRE:(1)在编译&(2)以运行应用程序时加载库以获取类路径分辨率。对于编译java源代码,Eclipse不需要javac.exe或JDK,它使用自己的编译器JDT。因此,当您将JRE更新为最新版本时,eclipse将自动获取最新的库来编译源代码。要包含一个新的JRE,就像你已经知道的那样。goto Window - > Preferences - > Java - > Installed JRE

4

Eclipse正在使用您配置的JDK来运行和调试代码。您可以在Window - > Preferences - > Java - > Installed JRE中配置/更改它。

更新Kevin K的注释如下 - Eclipse不使用安装的JRE/JDK进行编译,它使用内置的JDT增量编译器。它使用安装的JRE/JDK进行运行和调试。并且,使用JDK,Java库的源附件

+0

感谢您的回复。但是我发现的是通往JRE的途径,而不是JDK。 Eclipse以某种方式使用JRE进行编译?换句话说,Eclipse是否只需要最新的Java运行时库以“最新”的方式编译? (不要怀疑你的回复,只是有点意外。) –

+0

JDK没有提供将Java源代码编译成类文件的编译器。我从来没有试过如果我在我的系统上没有JDK的情况下在Eclipse中进行编译会发生什么。 –

+1

@TK Gospodino:Eclipse不需要JDK来运行。只是一个JRE。 –

0

我找到了自己的方式来使用最新的非常不寻常的东西。我们通常这样工作:

  • 在您的操作系统(JAVA_HOME)中定义您想要作为默认值的java。在你的所有脚本中使用这个变量,所以很容易集中改变它。
  • 如果您启动eclipse,您可能会包含一个参数-vm,表示将用于启动Eclipse的VM。如果它是JDK的一部分,eclipse会发现它并使用该JDK作为标准VM来启动和编译程序。
  • 但是,您可以定义其他JDK和JRE,并定义哪个应该是您的工作空间的默认值。

当我们开发了一个客户(我们总是开发客户),它是适当采取最新的JDK(发展速度,...),但用于编译和运行应用程序的JDK定义由客户,其中一些甚至使用JDK 1.4。所以如果你想要引导eclipse应该使用哪个JDK,你应该明确指出(并且是的,你必须为每个开发人员在每次安装时执行此操作)。

2

这取决于你如何安装Java。有两种模式,“家庭”和“静态”(请参阅​​this article)。

如果您在“家庭”模式安装Java,新版本将替换“JRE6”目录中的现有之一,因为它是同一路径的Eclipse不需要重新配置。

如果以“静态”模式安装Java,则更新将安装在其他路径(例如“jre1.6.0_27”)中,并且应该重新配置Eclipse以使用该JRE。

对于挑选,配置的JRE不用于编译类(Eclipse有一个内置的增量编译器),但它用于运行和调试程序。

+0

谢谢凯文。你的最后一句话与我在其他地方阅读的内容类似,这就是我的好奇心。但是现在看来,从我的回答中,我永远不必担心Eclipse内部编译器的最新性,只有JRE。 –