除了使用java启动器之外,不可能启动任何Java程序。
但是当我启动Tomcat或任何其他应用服务器时,我并没有真正运行java程序。我选择start server
。
启动服务器时(本案例为Tomcat),调用java的实际位置在哪里?
答案 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”作为进程执行。