Windows版のTomcat5.5.4において、CATALINA_HOME/bin/Tomcat5.exeとTomcat5W.exeで挙動が異なることが分かったので、メモ。あるWebアプリを試していて、動作が違うことに気がついたので、次のJSPを実行してみた。
<%
out.print("<dl>");
java.util.Properties info = System.getProperties();
for (java.util.Enumeration e = info.keys(); e.hasMoreElements(); ) {
String key = (String)e.nextElement();
out.print("<dt>");
out.print(key);
out.print("</dt>");
out.print("<dd>");
out.println(info.getProperty(key));
out.print("</dd>");
}
out.print("");
%>
そしたら、Tomcat5.exeとTomcat5W.exeで次のような違いが出た。
- user.dir
Tomcat5=C:\Program Files\Apache Software Foundation\Tomcat 5.5\bin
Tomcat5W=C:\WINNT\system32- user.home
Tomcat5=C:\Documents and Settings\Administrator
Tomcat5W=C:\Documents and Settings\Default User- user.name
Tomcat5= Administrator
Tomcat5W=SYSTEM- java.library.path
- user.nameが異なるので、Tomcat5Wはシステムの環境変数しかもってきていない。
もしかするとどこかのドキュメントに記載されているのかもしれませんが、この違いは単に実行ファイルの動く場所に依存しているということなのでしょうね。しかし「Tomcat5.exeもTomcat5W.exeもどちらも同じ動きをして、単にユーザインターフェースだけの違いだ」と思っていると痛い思いをしそうです。
追記
The Apache Jakarta Tomcat 5.5 Servlet/JSP Container - Windows service HOW-TO
この中で、
という記述があります。Tomcat5.exeはWindowsサービスのアプリで、Tomcat5w.exeはモニタリングと設定のためのGUIツールなわけですね。位置付けが異なるので動作が違うといえばその通りですね。
Tomcat5 service application
Tomcat5 is a service application for running Tomcat5 as NT service.
Tomcat5w monitor application
Tomcat5w is a GUI application for monitoring and configuring Tomcat services.
教訓:exeファイルを直接叩かずに、サービスとしてインストールして、サービスを利用しよう。
Comments