首先,咱们来看几个概念:
1.什么是jvm
咱们从操做系统的层面来理解,jvm其实就是操做系统中的一个进程。既然是一个进程,那么咱们很容易的能够经过任务管理器来查看。假设此时咱们启动myeclipse(myeclipse其实就是用java语言编写的一个软件,他的运行必然会启动一个jvm,咱们能够把myeclipse理解成咱们本身写的一个简单的java版的helloworld程序)。
2.什么是tomcat
tomcat实际上是一个用java语言开发的免费开源的web服务器(由于是java语言开发,这就是为何使用tomcat前要配置好jdk,由于jdk里面有jvm,而运行java应用须要jvm)。此时再次查看任务管理器会发现多了一个javaw.exe
看了二者之间的概念以后,相信咱们都清楚了二者之间的关系。
如今还有一个问题:
同一个tomcat下的java ee项目使用的是否是同一个jvm?答案是是的。(使用的都是启动tomcat的jvm)这个能够经过启动不一样的web应用来本身判断。
若是运行的是普通的java se程序,使用的是否是同一个jvm呢?答案是否。这个能够本身运行程序判断。(能够写一个很简单的while死循环,便于查看)。
最终总结出四点结论:
一、JVM就一个,就至关于你的电脑安装XP系统同样能够运行word,offfice等一些办公软件。让tomcat跑起来,就得有jdk,而jdk自带了JVM,安装完了jdk,把安装jkd的bin目录告诉tomca,就能够了。
二、有的web服务器没必要安装jdk,由于自带了,如weblogic。
三、tomcat web容器,主要和有jsp和servlet有关, 没有tomcat, 经过必定技术是能够运行jsp和serlet,因此说JVM跑着tomcat,而没有JVM tomcat就废物了。
四、tomcat只是一个web容器,启动的时候,默认是不会去编译java及jsp code的,除非在你web工程的web.xml里配置了一些listener,而后在这些listner里,本身定义了一些关于jsp编译的操做。
java