【问题标题】:Does Java EE run on Java SE's JRE?Java EE 是否在 Java SE 的 JRE 上运行?
【发布时间】:2017-07-26 14:21:15
【问题描述】:

如果我只是运行一个预构建的 Java EE(服务器)应用程序,它是否可以在 Java SE 的 JRE 上运行,在这里可以找到?:http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html

【问题讨论】:

  • 如果您有一个 Java EE 应用程序,您可能有一个 .war 或 .ear 文件,它需要一个 Java EE 应用程序容器。如果您有一个 .jar,那么您可能没有运行预构建的 Java EE 应用程序。无论哪种方式,一切都在 Java SE 附带的 Java JVM 下运行。
  • 否 -- 您需要安装基于 Java 的应用服务器,例如 Tomcat、JBoss 或 Glassfish
  • 不,因为 EE 是 SE 的超集。您需要一个支持 Java EE 和所有规范的应用服务器。
  • (第三方)容器是否实现了 java ee 规范 (docs.oracle.com/javaee/6/api/allclasses-noframe.html) 中的类,或者是由 Oracle 维护的类,例如 Java SE?
  • 如果只使用嵌入式容器,它可以在Java SE环境中运行。

标签: java jakarta-ee


【解决方案1】:

你问了两个不同的问题:

Java EE 是否在 Java SE 的 JRE 上运行?

假设您指的是 Java EE 规范的实现(例如 Glassfish、JBoss、Glassfish、WebSphere 等),那么答案是

所有这些都将在 Java SE JRE 上运行。实际上,您通常需要从您正在使用的 Java EE 实现中单独下载 JRE。

如果我只是运行一个预构建的 Java EE(服务器)应用程序,它会在 Java SE 的 JRE 上运行吗?

答案是。 Web 应用程序需要一个 Web 容器;例如Glassfish、JBoss、Glassfish、WebSphere 等

webapp Java EE Web 容器中运行,Java EE Web 容器 JRE 上运行。


希望以上内容可以帮助您理解为什么您提出的两个问题不同。

还应该说,并非所有 Java EE 实现都是“平等的”。其中一些(例如 Tomcat)仅实现 Java EE 规范的一个子集。然而,一个典型的 Web 应用程序只需要 Java EE 的一个子集;例如Servlet、JSP 和 JSTL 框架/实现。

【讨论】:

    【解决方案2】:

    问题是,您为什么要尝试在没有 J2EE-Server 的情况下运行 JavaEE 应用程序。 如果您想做模块测试,功能的子集有时足以运行应用程序的有限部分,包括 h2 数据库访问、内存中的消息队列、异步和计时器模拟、资源注入......以及 JUnit -Testrunner。

    寻找ejb-cdi-unit

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-14
      • 2015-01-02
      • 1970-01-01
      • 2013-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多