MacでJavaを切り替えるときは、今のシェルで使うJavaと、Tomcatを起動するJavaを分けて確認します。PATHを変更しても、すでに稼働中のJVMは切り替わりません。
訂正版:今のターミナルでJavaを選ぶ
/usr/libexec/java_home -Vで認識される導入済みJDKを確認する。これは新しいJDKをインストールする操作ではありません。- 下の17を利用したい導入済みメジャー版へ変更する。
man java_homeで手元の-F/-vの対応も確認する。-Fは条件に合わないとき既定候補へフォールバックさせない指定です。 - 成功時の出力を確認してから、
java -versionとcommand -v javaでコマンド側も照合する。aliasや関数がある場合はPATHだけで選択が変わらないことがあります。
# Source in the current shell after choosing an installed JDK from java_home -V.
if selected_java_home=$(/usr/libexec/java_home -F -v 17) &&
[ -n "$selected_java_home" ] &&
[ -x "$selected_java_home/bin/java" ] &&
"$selected_java_home/bin/java" -version; then
export JAVA_HOME="$selected_java_home"
export PATH="$JAVA_HOME/bin:$PATH"
else
printf '%s\n' 'Java selection failed; JAVA_HOME and PATH were not changed.' >&2
fi
unset selected_java_home
このコードは現在のシェルへ貼るか、確認済みファイルをsourceして使う断片です。別のshプロセスで実行しても親のターミナルは変わりません。選択失敗・空パス・実行不可・Javaの起動失敗ならJAVA_HOME/PATHを変更しません。繰り返すとPATHの先頭が重複するので、同じ処理を複数の起動ファイルへ重ねて登録しないでください。
保存先とTomcatへの反映範囲
| 対象 | 設定・確認する場所 |
|---|---|
| 通常の対話zsh | ZDOTDIR未指定なら~/.zshrc。ログイン時には~/.zprofileも別途読み込む。既存設定の上書き順を確認する |
| 通常のBash | 対話の非ログイン起動は~/.bashrc。ログイン起動は~/.bash_profile等の最初に読める個人設定を使い、.bashrcが自動で読まれるとは限らない |
| Tomcat標準シェル起動 | 通常起動ではJRE_HOMEも確認する。両方設定されている場合、JAVA_HOMEだけの変更では期待どおりに変わらない。意図してJAVA_HOMEへ揃える場合に限りJRE_HOMEを解除/更新し、setenv.shの再設定も確認する |
| Eclipse・サービス | その起動構成が選択するJRE/JDKと環境を確認する。ターミナル設定の保存だけで反映済みとしない |
Tomcatの標準スクリプトでは読み取れるCATALINA_BASE/bin/setenv.shを優先し、なければCATALINA_HOME/bin/setenv.shを使います。HOME/BASEはこのファイルを探す前に決めます。再起動は停止影響を確認して別途行い、対象プロセスのJava確認で照合してください。
根拠: zshの起動ファイル、Bashの起動ファイル、Tomcatの実行設定。Mac実機の動作保証ではなく、下の古い出力は履歴として残します。
| この記事の要点 |
|---|
|
※tomcatを直に起動した際のjavaバージョンに影響するものであってeclipse上から起動する場合はeclipse側で設定する場合があるので要注意。
Tomcatの通常のシェル起動はJAVA_HOME/JRE_HOMEやsetenv.shの影響を受けます。Mac全体のJavaが一括で変わるわけではなく、Eclipse・サービス・コンテナ等の起動設定は別に確認します。
MacのJavaバージョン確認方法
|
$ java -version |
Tomcatで設定しているJavaバージョン確認方法
下はTomcat 9.0.39とJava 8の当時の出力です。version.shは現在の設定で別のJavaプロセスを実行する確認用で、既存サーバープロセスのバージョンを取得するコマンドではありません。古い更新版を導入先にしないでください。
|
$ ./version.sh |
使用できるJavaバージョンの確認
|
/System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java_home -V |
設定の変更
ここからの黒い表は旧手順の記録です。そのまま実行しないでください。 自分のシェル設定を編集する通常の作業にsudoは不要です。先に上の訂正版とシェル別の保存先を確認してください。
|
sudo vi ~/.bashrc |
旧説明の.zshrcdは.zshrcの誤記です。ただし.bashrc/.profile/.zshrcは同じ条件で読まれるファイルではありません。実際のシェルとログイン/対話起動を確認して保存先を選びます。
次の旧例の$PATは$PATHの誤記です。 既存の検索パスを失うため、この2行は追加しないでください。引用符と失敗確認を含む上の訂正版を使用します。
|
export JAVA_HOME=`/System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java_home -v "1.8"` |
旧例の1.8はJava 8を表します。任意の値を入れるのではなく、導入済み一覧とアプリ/Tomcatの対応Javaを確認します。
次のsource ~/.bashrcはBash用の旧例です。自分が確認・編集したファイルだけを現在の対応シェルで読み直します。sourceはファイル内の命令を実行し、別プロセスのTomcatへ設定を反映する操作ではありません。
|
source ~/.bashrc |
子ページはありません
人気ページ
- 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