【发布时间】:2014-07-01 19:10:35
【问题描述】:
我正在尝试确定 Tomcat 在 Windows 中从 startup.bat 启动时的安装目录。
当Tomcat作为服务运行时,很容易确定tomcat7.exe在哪里运行,但我不知道当它用脚本启动时如何做。我知道从脚本启动 Tomcat 时 java 正在运行,但可执行路径是用于 java jre。我可以做些什么来找到基于 java 的 catalina 在哪里运行?
【问题讨论】:
我正在尝试确定 Tomcat 在 Windows 中从 startup.bat 启动时的安装目录。
当Tomcat作为服务运行时,很容易确定tomcat7.exe在哪里运行,但我不知道当它用脚本启动时如何做。我知道从脚本启动 Tomcat 时 java 正在运行,但可执行路径是用于 java jre。我可以做些什么来找到基于 java 的 catalina 在哪里运行?
【问题讨论】:
假设你知道startup.bat的位置,那么只要去上面的两个文件夹就可以了。
假设您只有此文件的快捷方式,那么您需要检索一个进程列表,解释应用程序和它们正在使用的文件的位置,类似于基于 Unix 的操作系统的 ps aux 命令。幸运的是,Windows 也有这样的东西。来自这个很棒的 Q/A:Is there a command in Windows like ps -aux in UNIX?,更具体地说,this answer,在 Windows 中查找 tomcat 位置的方法是执行 wmic 应用程序(如果需要,通过 CMD)并编写 process 命令,这将提供当前正在运行的应用程序及其参数的列表。例如,我从 startup.bat 文件中初始化了 Tomcat,并使用上面的命令(单行)得到了这个结果:
java.exe "C:\Program Files\Java\jdk1.7.0_40\bin\java" -Djava.util.logging.config.file="<TOMCAT_HOME>\conf\logging.properties" -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs="<TOMCAT_HOME>\endorsed" -classpath "<TOMCAT_HOME>\bin\bootstrap.jar;<TOMCAT_HOME>\bin\tomcat-juli.jar" -Dcatalina.base="<TOMCAT_HOME>" -Dcatalina.home="<TOMCAT_HOME>" -Djava.io.tmpdir="<TOMCAT_HOME>\temp" org.apache.catalina.startup.Bootstrap start
这是相同的结果,但为了便于阅读,分成几行:
java.exe "C:\Program Files\Java\jdk1.7.0_40\bin\java"
-Djava.util.logging.config.file="<TOMCAT_HOME>\conf\logging.properties"
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.endorsed.dirs="<TOMCAT_HOME>\endorsed"
-classpath "<TOMCAT_HOME>\bin\bootstrap.jar;<TOMCAT_HOME>\bin\tomcat-juli.jar"
-Dcatalina.base="<TOMCAT_HOME>"
-Dcatalina.home="<TOMCAT_HOME>"
-Djava.io.tmpdir="<TOMCAT_HOME>\temp"
org.apache.catalina.startup.Bootstrap start
注意:在上面的结果中,我已将真实路径替换为 <TOMCAT_HOME>。
TL;DR 这样做:
java.exe 和包含 Tomcat jar 的参数。【讨论】:
既然您明确提到 *.bat 和 Windows,这里就是您的答案。
1. 大多数 tomcat 应用程序以 zip 格式而不是 msi/exe 格式提供。您提取的地方实际上是它的位置。您通过单击 startup.bat 文件来启动应用程序
2.用记事本打开bat文件。您还将找到应用程序的相对路径。
3.寻找路径变量。
希望这些信息对您有所帮助
【讨论】: