2012-10-20 21:36:09 +0000 2012-10-20 21:36:09 +0000
84
84
Advertisement

OS X 10.8.2でJava 7とJava 6を切り替えるには?

Advertisement

私は、Windowsとmacで簡単なゲームをプログラムするためにJava SE 7を使用していますが、私のコンピュータでMinecraftなどのゲームを実行するためにJava 6に切り替えなければなりません。Mac OS X 10.8.2 Build 12C60にアップデートする前は問題なく動作していました。

このアップデートの前は、Java環境設定を開いてJava 6やJava 7をチェックオフにすることができました。しかし、今はJava環境設定を見つけることができないようです。

OS X 10.8.2(最新版)を使用しています。

Advertisement
Advertisement

回答 (10)

99
99
99
2013-02-22 12:26:51 +0000

java_homeのメカニズムをもっと便利に使うことができます。

$ java -version
java version "1.7.0_15" 
…

さて、Java 6 を有効にしてみましょう:

$export JAVA_HOME=$(/usr/libexec/java_home -v 1.6)

これです。

$ java -version
java version "1.6.0_41"
…

.bashrcは、java_lsの出力をバージョン番号だけに減らします。そして、java_home -V は上記で行ったことのショートカットに過ぎません。例えば、java_use は Java 6 に切り替えます。

41
41
41
2012-10-24 17:40:09 +0000

JRE(実行環境)の切り替えはできないと思います。

http://docs.oracle.com/javase/7/docs/webnotes/install/mac/mac-jre.html

を参照してください。

1つのJREしかインストールできません。JRE をインストールすると、以前にインストールした JRE が削除されます。システムが使用している JRE のバージョンは、次の 2 つの方法のいずれかで判断できます。

回避策:

私もWualaを使ってマインクラフトであなたと同じような問題がありました。Java 1.6を使用してWualaを実行する必要がありましたが、JDK 1.7で開発する必要があったので、Wuala.appパッケージを開いて起動スクリプトを変更しました。

/Applications/Wuala.app/Contents/MacOS/wuala

から:

exec java ${VMARGS} -cp "${JAR_DIR}/loader3.jar":/System/Library/Java/ com.wuala.loader3.Loader3 -alternateprogrampath "${JAR_DIR}" -installed $*

に変更しました。

/usr/libexec/java_home -v 1.6.0 --exec java ${VMARGS} -cp "${JAR_DIR}/loader3.jar":/System/Library/Java/ com.wuala.loader3.Loader3 -alternateprogrampath "${JAR_DIR}" -installed $*

に変更します。exec/usr/libexec/java_home -v 1.6.0 --exec

もちろんこれはかなり複雑で、wualaが自動更新するたびに壊れてしまいますが、それ以外はうまくいきます。

別のJDKを使うにはこちらを参照してください。

http://docs.oracle.com/javase/7/docs/webnotes/install/mac/mac-jdk.html

を参照してください。

異なるバージョンのJavaを実行するには、フルパスを指定するか、java_homeツールを使用してください。/usr/libexec/java_home -v 1.7.0_06 --exec javac -version

以下は、私のセットアップの例です。

Oracle JDKがインストールされています。

odin:~ geff$ ls -al /Library/Java/JavaVirtualMachines 
total 0
21058660 0 drwxr-xr-x 3 root wheel - 102 24 Oct 18:04:33 2012 jdk1.7.0_09.jdk/
21061692 0 drwxr-xr-x 3 root wheel - 102 24 Oct 18:06:08 2012 jdk1.7.0_07.jdk/
21042328 0 drwxrwxr-x 3 root wheel - 102 20 Apr 06:58:53 2012 1.7.0.jdk/
21031664 0 drwxrwxr-x 7 root admin - 238 24 Oct 18:04:16 2012 ../
21042327 0 drwxr-xr-x 5 root wheel - 170 24 Oct 18:06:13 2012 ./

Apple supplied JDK:

odin:~ geff$ ls -al /System/Library/Java/JavaVirtualMachines 
total 0
21026468 0 drwxr-xr-x 3 root wheel - 102 1 Nov 17:49:02 2011 1.6.0.jdk/
21026436 0 drwxr-xr-x 6 root wheel - 204 24 Mar 23:04:06 2012 ../
21026467 0 drwxr-xr-x 3 root wheel - 102 1 Nov 17:49:02 2011 ./

これは、Appleが提供する1.6のJDKを使用するためにも動作します

odin:~ geff$ /usr/libexec/java_home -v 1.6.0_37 --exec java -version
java version "1.6.0_37"
Java(TM) SE Runtime Environment (build 1.6.0_37-b06-434-11M3909)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01-434, mixed mode)

1.7のOracleバージョンから選択します。

最初のOracle JDK 1.7.0を選択中_04

odin:~ geff$ /usr/libexec/java_home -v 1.7.0_04 --exec java -version
java version "1.7.0_04"
Java(TM) SE Runtime Environment (build 1.7.0_04-b21)
Java HotSpot(TM) 64-Bit Server VM (build 23.0-b21, mixed mode)

JDK 1.7.0を選択中_07

odin:~ geff$ /usr/libexec/java_home -v 1.7.0_07 --exec java -version
java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)

デフォルトのJDKは一番高いものです。

odin:~ geff$ java -version
java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)

マイナーバージョンのみを使用している場合のデフォルトは、最も高い「パッチレベル」になります。

35
Advertisement
35
35
2013-03-18 22:53:29 +0000
Advertisement

JDKを簡単に切り替えるためのソリューション(JREについては不明)で、6と7だけでなく、どのJDKバージョンでも動作します ソース )。

Bash shell 、この関数を .bash_profile に追加してください。

function setjdk() {  
  if [$# -ne 0]; then  
   removeFromPath '/System/Library/Frameworks/JavaVM.framework/Home/bin'  
   if [-n "${JAVA_HOME+x}"]; then  
    removeFromPath $JAVA_HOME  
   fi  
   export JAVA_HOME=`/usr/libexec/java_home -v $@`  
   export PATH=$JAVA_HOME/bin:$PATH  
   echo JAVA_HOME set to $JAVA_HOME  
   java -version  
  fi
 }  
 function removeFromPath() {  
  export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;")  
 }

フィッシュシェル 、この関数を~/.config/fish/functions/setjdk.fishとして保存してください。

function setjdk
  if [(count $argv) -ne 0]
    set -x PATH (string match -v /System/Library/Frameworks/JavaVM.framework/Home/bin $PATH)
    if [-n "$JAVA_HOME"]
      set -x PATH (string match -v $JAVA_HOME $PATH)
    end
    set -x JAVA_HOME (/usr/libexec/java_home -v $argv)
    set -x PATH $JAVA_HOME/bin $PATH
    echo JAVA_HOME set to $JAVA_HOME
    java -version
  end
end

使用方法:

$ setjdk 1.7
7
7
7
2012-10-23 09:02:28 +0000

簡単な回避策は、古いJava 6バイナリへのシンボリックリンクを作成することです:

sudo ln -s /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Commands/java /usr/local/bin/java6

その後、次のようにしてアプリを実行します: java6 -jar myapp.jar

3
Advertisement
3
3
2013-11-12 10:15:22 +0000
Advertisement

ここでは、mac osxでjava 6とjava 7を切り替える簡単な方法をご紹介します。

step 1 : oracle公式サイト http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html からjdk 7をダウンロードして、ヒントに沿ってステップバイステップでインストールします。

$ vim .bash_profile 

export JAVA_HOME=$(/usr/libexec/java_home)

$ source .bash_profile

$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home

step 3: もし、jdk 6を使いたい場合は、$JAVA_HOMEをjdk 6のホームパス

$ vim .bash_profile 

export JAVA_HOME=$(/usr/libexec/java_home -v 1.6)

$ source .bash_profile

$ echo $JAVA_HOME
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
```に変更してください。
3
3
3
2013-05-16 22:11:30 +0000

OS X上で$JAVA_HOME変数を変更しなくても、Javaのバージョンを瞬時に切り替えることができます。

私は 10.8.2 を実行していて、私の $JAVA__HOME 変数は /Library/Java/Home

echo $JAVA_HOME

このパスはシンボリックリンクで、 ls -l コマンド

ls -la /Library/Java

デフォルトのシンボリックリンクは

Home -> /Library/Java/JavaVirtualMachines/1. 6.0_33-b03-424.jdk/Contents/Home/

javaを1.7インストールにリダイレクトするために、古いHomeシンボリックリンクをJava 1.7インストールのホームディレクトリを指す新しいシンボリックリンクに置き換えるだけです。

cd /Library/Java
mv Home Home-1.6
ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home/ Home

そして出来上がり! java -version は、私が現在 java 1.7 を実行していることを示しています。現在どのシンボリックリンクが「Home」という名前になっているかを切り替えるだけで、デフォルトのjava JREを即座に変更することができます。

3
Advertisement
3
3
2014-06-10 17:02:51 +0000
Advertisement

Java環境を管理する(MacとLinuxで)。 http://www.jenv.be/

RubyのRVMやNodeのNに似ていますが、Javaの場合はそうではありません。

3
3
3
2012-10-21 14:58:46 +0000

Java環境設定アプリには、Java 1.6はもう表示されていないようです。しかし、コマンドラインでJavaのバージョンを確認すると、以下のように表示されます。

java -version                                            
java version "1.6.0_37"
Java(TM) SE Runtime Environment (build 1.6.0_37-b06-434-11M3909)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01-434, mixed mode)
2
Advertisement
2
2
2014-02-21 14:32:13 +0000
Advertisement

上記と他の研究に基づいて、あなたのプロフィールに “ソース"(または "ドット")を入力できるスクリプトを考案しました。これはあなたのMacで利用可能なJAVA_HOMEsのメニューを表示しますが、デフォルトのホームを指定したり、メニューの選択肢を事前に選択したりすることもできます。

私の.bash_profileでは。

export PREJAVA_PATH="$PATH:~/bin"
export PATH="${PREJAVA_PATH}"
. gojava -d

変数PREJAVA_PATHを必要とすることに注意して下さい。コマンドラインから呼び出すこともできます:

$ . gojava

または、2番目のオプションを事前に選択します。

$ . gojava -c 2

ファイル gojava は次のようになります。

0
0
0
2016-03-12 13:10:22 +0000

フィッシュシェル版の @alex の答え (~/config/fish/config.fish に追加):

alias java_ls '/usr/libexec/java_home -V 2>&1 | grep -E "\d.\d.\d[,_]" | cut -d , -f 1 | colrm 1 4 | grep -v Home'

function java_use
    set JAVA_HOME (/usr/libexec/java_home -v $argv)
    set PATH $JAVA_HOME/bin $PATH
    java -version
end

0x1&

Advertisement

関連する質問

12
5
13
8
6
Advertisement