CATALINA_HOMEはTomcat本体、CATALINA_BASEは実行インスタンスの場所です。シェルの変数が空でも、Tomcat未導入・未起動とは限りません。調べたいプロセスと起動方法を先に確認します。
環境変数・起動設定・稼働中の値を分ける
| 観測 | 分かること・次の確認 |
|---|---|
| echoの結果が空 | 今のシェルの値が空というだけ。標準スクリプトの自動推定やサービス側の設定は別にある |
| version.shが成功 | その実行条件での本体/JVMの情報。別途稼働中のプロセスを調べたことにはならない |
| 複数のcatalina.baseがある | 各インスタンスの設定・ログ・ポートを分けて確認。同じHOMEでも同じ運用単位とは限らない |
setenv.shを置くときの注意
標準のシェル起動では、読み取れるBASE/bin/setenv.shが優先され、なければHOME/bin/setenv.shを使います。BASE/binも設定の置き場になる点に注意してください。HOME/BASE自身はsetenvを探す前に設定します。既存ファイルは上書きせず内容と権限を確認し、確認のために未知のsetenvをsourceしないでください。
下の複数インスタンス例は起動操作です。事前に各BASEへ必要な設定を用意し、衝突しないポートや保存先を決めます。HOMEだけ指定して、空のBASEで起動できるとは限りません。サービスや埋め込みTomcatでは同じスクリプト規則を前提にしません。
公式のTomcat実行設定を対象バージョンで確認してください。Javaの照合はJVM確認の記事、Macの切替はMacのJava切替へ進めます。
| この記事の要点 |
|---|
|
CATALINA_HOME とは
CATALINA_HOME はTomcat のインストールディレクトリを指す環境変数です。bin/, conf/, lib/, webapps/, logs/ 等のサブフォルダを含む親フォルダ。
類似の CATALINA_BASE は個別インスタンスの実行ディレクトリを指します(複数の Tomcat インスタンスを 1 つのバイナリで動かす場合に区別)。通常は CATALINA_HOME == CATALINA_BASE。
Linux / Mac での確認
① 環境変数として確認
$ echo $CATALINA_HOME
/opt/tomcat
# 未設定の場合は空行
# または bashrc / zshrc に書いてあるかチェック
$ grep CATALINA_HOME ~/.bashrc ~/.zshrc ~/.profile
② which コマンドで実行ファイルから推定
PATH上にない場合は見つかりません。見つかったパスも別インストールやリンク先の可能性があり、稼働中のTomcatと同じとは限りません。
$ which catalina.sh
/opt/tomcat/bin/catalina.sh
# → CATALINA_HOME は /opt/tomcat
$ which startup.sh
/opt/tomcat/bin/startup.sh
③ 起動中の Tomcat プロセスから確認
以下は出力例です。対象のPIDを特定し、別インスタンスやgrep自身を除いて照合します。全引数には秘密値が含まれ得るため、そのまま公開しないでください。
$ ps aux | grep tomcat
tomcat 1234 ... -Dcatalina.home=/opt/tomcat -Dcatalina.base=/opt/tomcat ...
# プロセス起動時の引数 -Dcatalina.home を見る
④ Tomcat の version コマンドで確認
次の旧コメント「動けば正しい」は対象の稼働プロセスまで保証しません。確認済みのHOMEを二重引用符で囲み、"$CATALINA_HOME/bin/version.sh"とします。これはその設定で別プロセスを実行する確認で、旧出力の9.0.71/Java 11が現在も稼働中だという証拠ではありません。
$ $CATALINA_HOME/bin/version.sh
Server version: Apache Tomcat/9.0.71
Server built: Jan 31 2023 15:24:13 UTC
Server number: 9.0.71.0
OS Name: Linux
OS Version: 5.15.0-25-generic
Architecture: amd64
JVM Version: 11.0.16+8-Ubuntu
JVM Vendor: Ubuntu
# version.sh が動けば CATALINA_HOME は正しい
Windows での確認
コマンドプロンプト
> echo %CATALINA_HOME%
C:\apache-tomcat-9.0.71
> where catalina.bat
C:\apache-tomcat-9.0.71\bin\catalina.bat
PowerShell
PS> $env:CATALINA_HOME
C:\apache-tomcat-9.0.71
PS> [System.Environment]::GetEnvironmentVariable("CATALINA_HOME","Machine")
PS> [System.Environment]::GetEnvironmentVariable("CATALINA_HOME","User")
# ユーザー / システムレベルで個別確認
システムのプロパティから GUI で確認
- 「PC」を右クリック → プロパティ
- システムの詳細設定 → 環境変数
- システム環境変数 or ユーザー環境変数のリストから
CATALINA_HOMEを探す
CATALINA_HOME の設定方法
Linux (~/.bashrc または /etc/profile)
以下は旧シェル設定例で、サービスが必ず読む設定ではありません。通常は自分の設定を編集し、システム全体の/etc/profileを安易に変えないでください。空白を含むパスではexport PATH="$CATALINA_HOME/bin:$PATH"のように引用します。
# .bashrc に追加
export CATALINA_HOME=/opt/tomcat
export PATH=$CATALINA_HOME/bin:$PATH
# 再読み込み
$ source ~/.bashrc
# 確認
$ echo $CATALINA_HOME
Mac (~/.zshrc または ~/.bash_profile)
下の/usr/local/...は旧環境の例で、すべてのMac/Homebrewの配置を表しません。実際の導入先とリンク先を確認してから設定します。ファイルの選択は使用シェルと起動方式によって異なります。
# Homebrew でインストールした場合
export CATALINA_HOME=/usr/local/opt/tomcat/libexec
# 手動インストールの場合
export CATALINA_HOME=/usr/local/apache-tomcat-9.0.71
Windows(システム環境変数)
- システムのプロパティ → 環境変数
- システム変数の新規を押す
- 変数名:
CATALINA_HOME - 変数値:
C:\apache-tomcat-9.0.71 - OK
PATH変数に%CATALINA_HOME%\binを追加
CATALINA_HOME vs CATALINA_BASE
| 変数 | 役割 | 含むフォルダ |
|---|---|---|
CATALINA_HOME | Tomcat バイナリの場所 | bin/ lib/ |
CATALINA_BASE | インスタンス固有の設定の場所 | conf/ logs/ webapps/ work/ temp/ |
通常は両方同じパスでよいですが、同じ Tomcat バイナリで複数インスタンスを動かす場合に分けます:
# 共通バイナリ
export CATALINA_HOME=/opt/tomcat
# インスタンス 1
CATALINA_BASE=/opt/tomcat-instance1 $CATALINA_HOME/bin/startup.sh
# インスタンス 2 (別のポート設定で)
CATALINA_BASE=/opt/tomcat-instance2 $CATALINA_HOME/bin/startup.sh
CATALINA_HOME 未設定でも動く?
Tomcat の起動スクリプト (catalina.sh / catalina.bat) は、環境変数が未設定でもスクリプト自身の位置から自動推定します。ただし絶対パスだけで起動成功が保証されるわけではありません。Java・権限・インスタンス設定等も必要です。下は旧起動例で、確認だけの目的で実行すると新たにサーバーを起動してしまいます:
# CATALINA_HOME 未設定でも OK
$ /opt/tomcat/bin/startup.sh
外部ツールやサービスは、その起動構成が要求するHOME/BASEを確認します。ターミナルの変数を追加するだけで反映されるとは限らず、稼働中の別インスタンスを切り替えないようにしてください。
関連記事
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスのソフト一覧|Blender・Metasequoiaと用途別の選び方
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Visual Studio「デザイナーを表示できません」エラーの原因と対処 2026-10-28 12:06:00
- SSH 認証に失敗しました。再試行してください の対処 2026-10-28 12:06:00
- SSH2 秘密鍵の読み込みに失敗しました の原因と対処 2026-10-28 12:06:00
- TeraTerm のよくあるエラーと対処法完全ガイド — Connection refused / 2026-10-28 12:06:00
- Visual Studio エラー一覧|コンパイルエラー・警告の確認方法と対処 2026-10-28 11:39:57
- Whitelabel Error Page の原因と消し方|Spring Boot のエラーページ 2026-10-28 11:39:57
- Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法 2026-10-28 11:39:57
- SQL WHERE 句完全ガイド 2026-10-28 11:39:57
- SQL JOIN 完全ガイド (INNER/LEFT/RIGHT/FULL OUTER) 2026-10-28 11:39:57
- tomcat の起動 / 停止ログと catalina.log・catalina.out の違い 2026-10-28 10:24:23
- Tomcat の起動確認方法 5 つ|localhost:8080・ポート・プロセス・ログ 2026-10-28 10:24:23
- Oracle 19c COMMITの使い方: 暗黙コミット・自動確定・応答不明時の確認 2026-10-28 09:59:09
- Oracle 19c DELETE文|削除対象の確認・COMMIT前の判断・ROLLBACKの条件 2026-10-28 09:59:09
- Oracle 19c INSERT文|INSERT ALL・SELECT・RETURNINGとMERGEの使い分け 2026-10-28 09:59:09
- Oracle 19cのトランザクション制御|COMMIT・ROLLBACK・分離レベルと接続設定 2026-10-28 09:59:09