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 / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Git pushした変更の取消し|revert・履歴変更と保護の注意点 2026-10-15 23:49:01
- Gitでローカルを戻す前に|reset・restoreの違いと退避範囲 2026-10-15 23:49:01
- Git rebaseの使い方|対象範囲・競合解決・pushの判断 2026-10-15 22:50:59
- Git pullの使い方|取込み先・ff-only・競合とstashの注意点 2026-10-15 22:50:59
- Git pushの使い方|送信先・タグ・force-with-leaseの条件 2026-10-15 22:12:47
- Git remoteの設定・確認・削除|SSH URLとfetch/pushの違い 2026-10-15 22:12:47
- Gitリモートリポジトリの作成|初回push・既存履歴・mirrorの注意 2026-10-15 15:48:16
- Gitのuser.name・user.email設定|local/global・確認と過去履歴の注意 2026-10-15 15:30:07
- LinuxにGitをインストール|配布元・初期設定・TLSと認証の確認 2026-10-15 15:30:06
- Git導入と初回push|Linuxサーバー・Windows/macOS・SSH設定 2026-10-15 14:51:54
- Db2のCREATE INDEX|索引定義・INCLUDEと実行計画の確認 2026-10-15 14:10:22
- Db2の自動採番|IDENTITY・ID取得とRESTARTの注意点 2026-10-15 14:10:22
- 【DB2】特定スキーマの全テーブルの全カラム情報を取得する方法 2026-10-15 13:53:15
- Db2のシーケンスとIDENTITYの違い|採番とカタログの確認SQL 2026-10-15 13:53:15
- Db2で複数カラムをUPDATEする方法|SET・WHEREと更新前の値 2026-10-15 13:53:15