Java Glassfish/JBoss/Geronimo是虚拟机吗?

Java Glassfish/JBoss/Geronimo是虚拟机吗?,java,jakarta-ee,Java,Jakarta Ee,我在理解不同的Java平台时遇到了一些问题,比如它们提供了什么,它们做了什么等等 下载JavaEESDK时,您会得到Glassfish,它是JavaEEAPI的参考实现。但Glassfish不是JVM,对吗?它只是一组实现JavaEE6规范的API/库?JBoss也是如此,它只是另一家公司编写的一组API/库 那么,当您从oracle.com下载Java EE SDK时,您得到的是Glassfish实现对吗 为了获得编译器、调试器、JVM和“核心”API,您还需要JavaSESDK吗?但API、

我在理解不同的Java平台时遇到了一些问题,比如它们提供了什么,它们做了什么等等

下载JavaEESDK时,您会得到Glassfish,它是JavaEEAPI的参考实现。但Glassfish不是JVM,对吗?它只是一组实现JavaEE6规范的API/库?JBoss也是如此,它只是另一家公司编写的一组API/库

那么,当您从oracle.com下载Java EE SDK时,您得到的是Glassfish实现对吗

为了获得编译器、调试器、JVM和“核心”API,您还需要JavaSESDK吗?但API、编译器、调试器和JVM是否也只是oracle的参考实现?是否有可能下载替代方案(不打算,但只是试图理解概念)

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


如果有人能帮助我正确理解这一概念,并解释一下我上面写的任何错误,我将不胜感激。

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

但GlassFish不是JVM,对吗

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

因此,从oracle.com下载Java EE SDK时得到的是 Glassfish实现对吗

如果您从Oracle下载了JavaEESDK,它将与GlassFish捆绑在一起

为了获得所需的编译器、调试器、JVM和“核心”API JavaSESDK也是吗?但是,API、编译器、调试器和JVM仅仅是一个工具吗 oracle的参考实现?可以下载吗 备选方案(不打算,但只是试图理解 概念)

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

如果您想编写Java应用程序,您需要一个JDK,因为JDK(Java开发工具包)包含
javac
(Java编译器)

最后,当您编译和运行JavaEE应用程序时……您是 使用JVM(不是Glassfish)执行此操作,但您可以访问 EE库也是如此

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

希望这有帮助


Wikipedia on.

您混淆了Java SE(对于Java SE,JVM可以是一个实现,如OpenJDK的HotSpot)和Java EE,后者以GlassFish作为参考实现(因此它出现在SDK中)和JBoss、Geronimo等。。。与JavaEE的其他实现一样

需要JavaSE,因此任何应用服务器(包括GlassFish)都需要JVM。一些JavaEESDK包附带JVM,以防您还没有JVM。是的,JavaSESDK附带了您期望的所有工具(编译器、解释器等)

例如,如果您不需要“容器”来抽象与数据库的集成,或者提供诸如资源注入之类的服务,或者更一般地跨多个用户提供可伸缩性,那么您可以在不使用JavaEE的情况下使用JavaSE(定义了一个)


希望这有帮助……

那么,Glassfish是一个用Java编写的服务器,它提供Java EE规范中指定的所有内容,以及它包含的应用程序?当你说“捆绑玻璃鱼”的时候…它是什么?对于第一个问题,正确。对于第二个问题,是用Glassfish打包的JavaEESDK。没别的了。我明白了,帮了很多忙。那么JVM包含所有Java类,比如字符串、异常等?例如,当我制作一个JAR时,这些类没有被编译并与我自己的类捆绑在一起?