TITLE:環境変数JAVA_HOMEを変更して使用するJDKを切り替える
Posted by at 2008-08-26

環境変数JAVA_HOMEを変更して使用するJDKを切り替える

#adsense2

JAVA_HOME.png

概要

環境変数JAVA_HOMEを変更するバッチファイルやシェルスクリプトを作成し、コンソールで使用するJDKを切り替えます。

概要

環境変数 JAVA_HOME を変更するバッチファイルを作成し、Windows*1 のコマンドプロンプトで使用するJDKを切り替えます。
JAVA_HOME.png

バッチファイル

バッチファイル

#spanend
#spandel
@echo off
#spanend
#spandel
set JDK_BASE=C:\Program Files\Java\
#spanend
- `core.autocrlf`が`false`な設定で`gist`からダウンロードすると、改行が`crlf`にならないので注意が必要

#spandel
if "%~1" == "" goto list
#spanend
#spanadd
* シェルスクリプト [#shellscript]
#spanend
#spanadd
#gist(5441080)
#spanend

#spandel
set JDK_TEMP=%JDK_BASE%jdk%~1
#spanend
- `Ubuntu`などの場合、`/usr/lib/jvm`以下に`jdk-7uXX-linux-x64.tar.gz`を展開していると想定

#spandel
if not exist "%JDK_TEMP%" goto error
#spanend
#spandel
set JAVA_HOME=%JDK_TEMP%
#spanend
#spandel
goto end
#spanend
 cd /var/cache/oracle-jdk7-installer
 sudo tar zxvf jdk-7u40-linux-x64.tar.gz -C /usr/lib/jvm 

#spandel
:list
#spanend
#spandel
dir "%JDK_BASE%jdk*"
#spanend
#spandel
goto end
#spanend
- ドットをシェルスクリプトの前に付けて実行すると、スクリプトを起動したシェルで起動されるので、その環境変数を更新可能
-- [http://togetter.com/li/72996 シェルスクリプトで環境変数を適用させるには IS01 Linux - Togetter]
-- [https://www.ne.jp/asahi/hishidama/home/tech/unix/sh.html UNIXシェルスクリプトメモ(Hishidama's UNIX shell script Memo)]

#spandel
:error
#spanend
#spandel
echo ----
#spanend
#spandel
echo Not exist %JDK_TEMP%
#spanend
 $ . jdk.sh 1.7.0_09

#spandel
:end
#spanend
#spandel
echo ----
#spanend
#spandel
echo JAVA_HOME=%JAVA_HOME%
#spanend
#spandel
"%JAVA_HOME%\bin\java" -version
#spanend
#spandel
set JDK_BASE=
#spanend
#spandel
set JDK_TEMP=
#spanend
#spandel

解説

ant.batjruby.batなどは、JAVA_HOME環境変数を使って使用するJDKのパスを取得しているので、これらのコマンドを実行する前に、set JAVA_HOMEすれば、そのコマンドプロンプト内で使用するJDKを簡単に切り替えることができます。

解説

ant.bat や jruby.bat などは、JAVA_HOME 環境変数を使って、利用するJDKのパスを取得しているので、これらのコマンドを実行する前に、"set JAVA_HOME" すれば、そのコマンドプロンプト内で使用するJDKを簡単に切り替えることができます。 上記のバッチファイルは、その際、"set JAVA_HOME=C:\Program Files\..." と一々入力しなくてすむようにするためのものです。
  • JDKはデフォルトのディレトクリにインストールされていることを想定 上記のバッチファイルは、その際、set JAVA_HOME=C:\Program Files\...と一々入力しなくてすむようにするためのものです。
以下、使用方法です。
  • 引数なしで、現在のJAVA_HOMEと、C:\Program Files\Java以下にインストールされているjdkを一覧表示
  • JDKはデフォルトのディレクトリにインストールされていることを想定
  • SDKMAN! the Software Development Kit ManagerJavaをインストールしている場合は使用する必要がない
    • 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 の切り替え
    • ディレクトリが存在しない場合は、なにもしない
  • 引数ありで、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)

参考リンク

参考リンク

コメント

コメント