Tomcat在哪里调用Java?

时间:2013-12-13 13:36:40

标签: java tomcat

除了使用java启动器之外,不可能启动任何Java程序。

但是当我启动Tomcat或任何其他应用服务器时,我并没有真正运行java程序。我选择start server

启动服务器时(本案例为Tomcat),调用java的实际位置在哪里?

3 个答案:

答案 0 :(得分:2)

服务器是正常程序。没有java启动器。当你启动tomcat时,启动java并将其指向tomcat JAR,从而启动tomcat。

答案 1 :(得分:2)

如果你查看tomcat安装,你会发现一个名为catalina.bat或catalina.sh的文件。在此文件中,您将找到启动Tomcat的所有命令。您将看到它实际上调用了jvm并传递了一些参数。 startup.bat或startup.sh文件只是一个脚本,可以让您轻松运行该应用程序。

请参阅source here

开始的行:

   %_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS%

接近结尾是实际运行Java命令的行。 %VARIABLE%语法是先前设置的变量。追溯文件以查看每个文件的设置,然后重建正在执行的命令。

答案 2 :(得分:1)

  

现在,当我启动Tomcat或任何其他应用服务器时,我不会真正运行   一个java程序。我选择“启动服务器”。

假。 Tomcat 一个Java程序。当您通过启动脚本(catalina.sh/bat和/或startup.sh/bat)启动Tomcat时,您将看到脚本执行各种检查以查找Java的安装位置并最终运行某些内容以实现

的效果。
CLASSPATH="something;yadda-yadda.jar" java org.apache.catalina.Bootstrap

当您将其作为Windows服务启动时,上述脚本不太明显,并且隐藏在注册表项和可执行文件的组合中,但整个过程是相同的,它找到Java的安装位置并执行它,指定具有public static void main方法的Tomcat入口点类。

在Windows上将其作为服务运行的默认模式是“jvm”,它实际上加载了tomcat7.exe(我认为这是正确的文件名),它加载jvm.dll以在过程中嵌入Java。您可以将服务更改为“java”模式,该模式与shell脚本类似,将“java.exe”作为进程执行。