2012-01-03 52 views
3

我对理解不同的Java平台有什么不同,例如他们给你什么,他们做什么等等。Glassfish/JBoss/Geronimo是虚拟机吗?

当您下载Java EE SDK时,您将获得Glassfish,它是Java EE API的参考实现。但Glassfish不是JVM的权利?它只是一组实现Java EE 6规范的API /库?这同样适用于JBoss,它只是一套由其他公司编写的API /库?

那么当您从oracle.com下载Java EE SDK时获得的是Glassfish的实现权限?

为了获得编译器,调试器,JVM和“核心”API,您还需要Java SE SDK吗?但是,API,编译器,调试器和JVM只是Oracle的参考实现吗?是否有可能下载替代品(不会去,但只是试图理解这个概念)。

最后,当您编译并运行Java EE应用程序....您使用的是JVM(不是Glassfish)来执行此操作,但您也可以访问EE库。

我会appriciate如果有人可以帮助我正确理解这个概念,并straigth事情了我上面写了任何错误。

回答

4

要回答您的标题:不,它们都是应用程序服务器而不是虚拟机。

但GlassFish不是JVM的权利?

正确,GlassFish是完全Java EE实现的应用程序服务器。这意味着您可以编写Java EE应用程序并在GlassFish上运行它。

那么从oracle.com下载Java EE SDK时得到的是 Glassfish的实现权?

如果您是从Oracle下载的Java EE SDK,它是与GlassFish捆绑在一起的

为了获得编译器,调试器,JVM和“核心”API,您还需要Java SE SDK ?但是,Oracle的API,编译器,调试器和JVM仅仅是一个 的参考实现吗?是否有可能下载 替代品(不会去,但只是想了解 概念)。

您需要一个JVM来运行任何基于Java的东西。 Glassfish在JVM上运行。您的Java EE应用程序在GlassFish中运行。 GlassFish是您的服务器,而不是JVM。

由于JDK(Java Development Kit)包含javac(Java编译器),所以如果您要编写Java应用程序,则需要JDK。

最后,当你编译和运行Java EE应用程序....你是 使用JVM(不Glassfish的)执行,但你有机会获得 的EE库也是如此。

您正在GlassFish中运行Java EE应用程序。 GlassFish将查看您的应用程序配置并知道如何执行您的Java EE实现的应用程序。 GlassFish由JVM运行(因为它是用Java编写的)。

希望这会有所帮助。

维基百科对Glassfish

+0

所以,GlassFish是用Java编写的服务器,并提供了所有的Java EE规范的应用程序,它包含指定的东西呢?当你说与Glassfish捆绑在一起...还有什么? – LuckyLuke 2012-01-03 14:47:56

+0

对于第一个问题,正确的。对于第二个问题,这是与Glassfish一起打包的Java EE SDK。而已。 – 2012-01-03 15:07:40

+0

我明白了,帮了很大忙。所以JVM包含所有的Java类,比如String,Exceptions等?例如,当我制作JAR时,这些类不会被编译并与我自己的类捆绑在一起? – LuckyLuke 2012-01-03 15:16:00

1

您对Java SE(其中一个JVM可以是OpenJDK的HotSpot的实现)和GlassFish作为参考实现(因此它存在于SDK中)以及JBoss,Geronimo等的Java EE之间感到困惑。 ..作为JavaEE的其他实现。

Java EE需要Java SE,因此任何应用程序服务器(包括GlassFish)都确实需要JVM。有些Java EE SDK捆绑软件随JVM一起提供,以防您还没有JVM。是的,Java SE SDK附带了您期望的所有工具(编译器,解释器等)。

人们可以使用Java SE(它定义了一个large set of API's),而Java EE的,如果你并不需要一个“容器”抽象掉的整合,数据库,例如或提供的服务,如资源注入或更一般跨越多个可扩展性用户。

希望这有助于...