Tips/SetJAVA_HOME のバックアップ(No.30)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Tips/SetJAVA_HOME へ行く。
- 1 (2011-01-28 (金) 19:32:31)
- 2 (2011-05-07 (土) 17:18:01)
- 3 (2012-08-03 (金) 18:09:16)
- 4 (2012-08-24 (金) 14:25:21)
- 5 (2012-10-29 (月) 22:00:20)
- 6 (2012-10-30 (火) 01:10:50)
- 7 (2012-12-31 (月) 19:06:57)
- 8 (2013-03-05 (火) 18:32:49)
- 9 (2013-04-20 (土) 20:10:12)
- 10 (2013-04-23 (火) 14:29:08)
- 11 (2013-06-17 (月) 16:15:05)
- 12 (2013-09-14 (土) 21:23:31)
- 13 (2013-09-15 (日) 02:03:37)
- 14 (2014-06-04 (水) 22:05:12)
- 15 (2014-09-03 (水) 18:20:53)
- 16 (2014-11-08 (土) 01:41:12)
- 17 (2015-09-29 (火) 19:26:52)
- 18 (2016-01-07 (木) 15:25:28)
- 19 (2016-09-26 (月) 15:49:14)
- 20 (2017-03-28 (火) 15:29:57)
- 21 (2017-10-27 (金) 16:26:13)
- 22 (2018-11-22 (木) 16:26:11)
- 23 (2019-04-19 (金) 13:43:27)
- 24 (2019-04-19 (金) 15:42:31)
- 25 (2019-04-19 (金) 17:52:50)
- 26 (2019-08-14 (水) 15:52:03)
- 27 (2025-01-03 (金) 08:57:02)
- 28 (2025-01-03 (金) 09:02:38)
- 29 (2025-01-03 (金) 09:03:21)
- 30 (2025-01-03 (金) 09:04:02)
- title: 環境変数JAVA_HOMEを変更して使用するJDKを切り替える author: aterai pubdate: 2008-08-26 description: 環境変数JAVA_HOMEを変更するバッチファイルやシェルスクリプトを作成し、コンソールで使用するJDKを切り替えます。
Summary
環境変数JAVA_HOME
を変更するバッチファイルやシェルスクリプトを作成し、コンソールで使用するJDK
を切り替えます。
バッチファイル
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@echo off | |
rem set JDK_BASE=%PROGRAMFILES%\Java | |
set JDK_BASE=%PROGRAMFILES%\Amazon Corretto | |
rem set JDK_BASE=%USERPROFILE%\.sdkman\candidates\java | |
if "%~1" == "" goto list | |
set JDK_TEMP=%JDK_BASE%\jdk%~1 | |
rem set JDK_TEMP=%JDK_BASE%\%~1 | |
if not exist "%JDK_TEMP%" goto error | |
set JAVA_HOME=%JDK_TEMP% | |
goto end | |
:list | |
dir "%JDK_BASE%\*" | |
goto end | |
:error | |
echo ---- | |
echo Not exist %JDK_TEMP% | |
:end | |
echo ---- | |
echo JAVA_HOME=%JAVA_HOME% | |
"%JAVA_HOME%\bin\java" -version | |
set JDK_BASE= | |
set JDK_TEMP= |
core.autocrlf
がfalse
な設定でgist
からダウンロードすると、改行がcrlf
にならないので注意が必要
シェルスクリプト
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
cygwin=false; | |
case "`uname`" in | |
CYGWIN*) cygwin=true; | |
esac | |
#sudo tar zxvf jdk-7u40-linux-x64.tar.gz -C /usr/lib/jvm | |
JDK_BASE=/usr/lib/jvm | |
if $cygwin; then | |
# JDK_BASE=/cygdrive/c/Program\ Files/Java | |
JDK_BASE=/cygdrive/c/Program\ Files/Amazon\ Corretto | |
fi | |
JDK_TEMP=$JDK_BASE/jdk$1 | |
if [ "$1" = "" ]; then | |
ls --time-style=long-iso -l "$JDK_BASE" | |
elif [ -e "$JDK_TEMP" ]; then | |
export JAVA_HOME=$JDK_BASE/jdk$1 | |
else | |
echo Not exist $JDK_TEMP | |
fi | |
echo "----" | |
$JAVA_HOME/bin/java -version |
Ubuntu
などの場合、/usr/lib/jvm
以下にjdk-7uXX-linux-x64.tar.gz
を展開していると想定
cd /var/cache/oracle-jdk7-installer sudo tar zxvf jdk-7u40-linux-x64.tar.gz -C /usr/lib/jvm
- ドットをシェルスクリプトの前に付けて実行すると、スクリプトを起動したシェルで起動されるので、その環境変数を更新可能
$ . jdk.sh 1.7.0_09
Explanation
ant.bat
やjruby.bat
などは、JAVA_HOME
環境変数を使って使用するJDK
のパスを取得しているので、これらのコマンドを実行する前に、set JAVA_HOME
すれば、そのコマンドプロンプト内で使用するJDK
を簡単に切り替えることができます。
上記のバッチファイルは、その際、set JAVA_HOME=C:\Program Files\...
と一々入力しなくてすむようにするためのものです。
JDK
はデフォルトのディレクトリにインストールされていることを想定- SDKMAN! the Software Development Kit Managerで
Java
をインストールしている場合は使用する必要がないsdk list java
で一覧表示sdk current java
で使用中のバージョン表示sdk use java 8.0.212-amzn
で現在のシェルで使用するバージョンを指定sdk default java 8.0.212-amzn
でデフォルトで使用するバージョンを指定
使用方法
- 引数なしで、現在の
JAVA_HOME
と、C:\Program Files\Java
以下にインストールされているjdk
を一覧表示
C:\tmp>jdk
ドライブ C のボリューム ラベルは WINDOWS です
ボリューム シリアル番号は xxxxxxxxx です
C:\Program Files\Java のディレクトリ
2008/09/03 16:25 <DIR> jdk1.4.2_17
2007/10/03 18:34 <DIR> jdk1.5.0_13
2008/02/06 17:17 <DIR> jdk1.5.0_14
2008/03/17 13:48 <DIR> jdk1.5.0_15
2008/07/18 11:28 <DIR> jdk1.5.0_16
2008/12/03 19:55 <DIR> jdk1.5.0_17
2007/10/31 21:24 <DIR> jdk1.6.0_03
2008/02/28 15:38 <DIR> jdk1.6.0_04
2008/04/17 19:41 <DIR> jdk1.6.0_05
2008/04/17 19:43 <DIR> jdk1.6.0_06
2008/07/23 17:37 <DIR> jdk1.6.0_07
2008/10/16 12:55 <DIR> jdk1.6.0_10
2008/12/12 14:58 <DIR> jdk1.6.0_11
2008/12/12 14:56 <DIR> jdk1.6.0_12
2008/12/10 20:56 <DIR> jdk1.7.0
0 個のファイル 0 バイト
15 個のディレクトリ 11,321,315,328 バイトの空き領域
----
JAVA_HOME=C:\Program Files\Java\jdk1.6.0_10
java version "1.6.0_10"
Java(TM) SE Runtime Environment (build 1.6.0_10-b33)
Java HotSpot(TM) Client VM (build 11.0-b15, mixed mode, sharing)
- 引数ありで、
JAVA_HOME
の切り替え- 指定したディレクトリが存在しない場合は、なにもしない
C:\tmp>jdk 1.7.0_
----
Not exist C:\Program Files\Java\jdk1.7.0_
----
JAVA_HOME=C:\Program Files\Java\jdk1.6.0_10
C:\tmp>jruby -J-version
java version "1.6.0_10"
Java(TM) SE Runtime Environment (build 1.6.0_10-b33)
Java HotSpot(TM) Client VM (build 11.0-b15, mixed mode, sharing)
C:\tmp>jdk 1.7.0
----
JAVA_HOME=C:\Program Files\Java\jdk1.7.0
C:\tmp>jruby -J-version
java version "1.7.0-ea"
Java(TM) SE Runtime Environment (build 1.7.0-ea-b31)
Java HotSpot(TM) Client VM (build 14.0-b01, mixed mode, sharing)
Reference
- ローカルのJava環境の管理について - marsのメモ
- 参考にした管理方法
- Windows 7へJDK 7をインストール - Object-Oriented & Java maneuver 別室
32bit
版と64bit
版を切り替える必要があるなら「環境設定バッチファイル(setjdk.bat
)」が便利そう
- java_home(1) Mac OS X Developer Tools Manual Page
- Java: Finding/Setting JDK/$JAVA_HOME on Mac OS X at Mark Needham