如何在 Windows 下使用特定 PATH 安装 tomcat?
Posted
技术标签:
【中文标题】如何在 Windows 下使用特定 PATH 安装 tomcat?【英文标题】:How to install tomcat with a specific PATH under Windows? 【发布时间】:2011-11-24 14:38:32 【问题描述】:我有以下代码:
tomcat5.exe //IS//%SERVICE_NAME% --StartPath "%BASE_DIR%\bin" --Jvm "%JAVA_HOME%\bin\%JAVA_MODE%\jvm.dll" --StartClass org.apache.catalina.startup.Bootstrap --StopClass org.apache.catalina.startup.Bootstrap --StartParams "-config;%CONFIG%;start" --StopParams stop --Startup auto
tomcat5.exe //US//%SERVICE_NAME% --JvmOptions "-Dcatalina.base=%CATALINA_BASE%#-Dcatalina.home=%CATALINA_HOME%#-Djava.endorsed.dirs=%CATALINA_HOME%\common\endorsed#-Xrs#-Djava.library.path=%DLL_DIR%#-DimageservicePath=%imageservicePath%" --StartMode jvm --StopMode jvm
tomcat5.exe //US//%SERVICE_NAME% ++JvmOptions "-Djava.io.tmpdir=%CATALINA_BASE%\temp"
tomcat5.exe //US//%SERVICE_NAME% --JvmMx %MEMORY% --JvmMs %MIN_MEMORY%
tomcat5.exe //US//%SERVICE_NAME% --Environment "PATH=.\;c:\path\bin"
我需要指定一个特殊的 PATH,因为一些本地代码加载问题。
我的问题是,服务安装程序将更改提供的 PATH: http://tomcat.apache.org/tomcat-5.5-doc/windows-service-howto.html
--环境 将以 key=value 形式提供给服务的环境变量列表。它们使用 # 或 ; 个字符
分隔
我需要指定一个包含两个位置的 Windows PATH:PATH=.;c:\path\bin
路径将存储在注册表中:
PATH=.
c:\path\bin
应该是:
PATH=.;c:\path\bin
它按描述工作,所以我想我错过了一些东西,但我没有找到任何关于如何设置 PATH 和解决这个问题的信息......
PS: 我知道我使用的是过时版本的 tomcat。
【问题讨论】:
你能编辑启动Tomcat的.bat脚本吗? tomcat 不是通过 *.bat 作为 windows 服务启动的。但如果需要,我可以更改所有脚本。 您提到您希望 PATH 为 PATH=.;c:\path\bin 但您正在运行的命令是 tomcat5.exe //US//%SERVICE_NAME% --Environment "PATH =.\;bin" 此外,由于这是一项服务,您可能需要添加完整路径而不是“.”。运行上述命令时是否收到错误消息? 是一个错字...问题似乎是,apache serviceinstaller 将 --Environment 参数拆分为 ';'符号。所以我无法以这种方式提供 Windows PATH,因为 Windows 路径分隔符是 ;也是。 【参考方案1】:好吧,在我下载了源代码并弄清楚之后,使用了 apache-commons procrun 守护程序,我终于找到了解决方案。 tomcat 项目的文档不完整:
http://commons.apache.org/daemon/procrun.html
++环境 将以 key=value 形式提供给服务的环境变量列表。它们使用 # 或 ; 分隔。人物。 如果您需要嵌入 # 或 ;值中的字符将它们放在单引号内。
最后一句话引出解决方案:
"%EXECUTABLE%" //US//%SERVICE_NAME% --Environment "PATH='%PATH%'"
【讨论】:
谢谢! :) 对其他人来说,PATH 周围的引号对于处理包含以上是关于如何在 Windows 下使用特定 PATH 安装 tomcat?的主要内容,如果未能解决你的问题,请参考以下文章