2017-07-26 66 views
0

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

+2

如果你有一个Java EE应用程序,你可能有一个.war或.ear文件,它需要一个Java EE应用程序容器。如果您有.jar,那么您可能不会运行预构建的Java EE应用程序。无论哪种方式,所有东西都在Java SE附带的Java JVM下运行。 –

+1

否 - 您将需要安装基于Java的应用程序服务器,如Tomcat,JBoss或Glassfish – amphibient

+0

不,因为EE是SE的超级集合。您需要一个支持Java EE和所有规范的应用程序服务器。 – MPhil

回答

3

你问两个不同的问题:

不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等

web应用程序运行在一个Java EE Web容器和Java EE Web容器中运行一个JRE。


希望以上内容能帮助你理解为什么你问的两个问题是不同的。

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

0

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

ejb-cdi-unit