MacOSに追加のJavaをインストールするにはどうすればいいですか?私はjdk8をインストールしました、そしてそれはうまく働きます。しかし今、私は開発目的のためにjdk7インストールが必要です。 DMGファイルで古いバージョンをインストールしようとすると、すでに新しいバージョンのJavaがインストールされていてインストーラが終了するという警告が表示されます。
/usr/libexec/Java_home -verbose
Matching Java Virtual Machines (1):
1.8.0_20, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home
これに加えてjdk7をインストールする方法?
ありがとう
ダッキー
Mac上で複数のJavaバージョンを管理する最も簡単な方法は Homebrew
を使うことです。
そしてHomebrew
の中では、
homebrew-cask
jenv
http://hanxue-it.blogspot.ch/2014/05/installing-Java-8-managing-multiple.html に見られるように、これらは続くべきステップです。
homebrew/cask-versions
tapを自作語に追加します。
brew tap homebrew/cask-versions
それからあなたは利用可能なすべてのバージョンを見ることができます:
brew search Java
それからあなたはあなたが好きなバージョンをインストールすることができます:
brew cask install Java7
brew cask install Java6
そして、いつものようにjenvによって管理されるようにそれらを追加します。
jenv add <javaVersionPathHere>
これが最もクリーンでシンプルな方法だと思います。
Mac OS X 10.6.7 Javaパス現在のJDKで混乱しているように注意するべきもう一つの重要なことは :
JDKやインストールの種類が異なると、パスも異なります。
/usr/libexec/Java_home -V
を使用してインストールされたバージョンのパスを確認できます。 Java JDKがMacにインストールされているかどうかを確認するにはどうすればいいですか?Mac OS Xの異端者では、私は次のように見つけた:
1)組み込みJREデフォルト:
/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
2)アップルからダウンロードしたJDK:
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/
3)OracleからダウンロードしたJDK:
/Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home
Jdk8をアンインストールし、jdk7をインストールしてから、jdk8を再インストールします。
それらを切り替えるための私のアプローチ(.profile):
export Java_7_HOME=$(/usr/libexec/Java_home -v1.7)
export Java_8_HOME=$(/usr/libexec/Java_home -v1.8)
export Java_9_HOME=$(/usr/libexec/Java_home -v9)
alias Java7='export Java_HOME=$Java_7_HOME'
alias Java8='export Java_HOME=$Java_8_HOME'
alias Java9='export Java_HOME=$Java_9_HOME'
#default Java8
export Java_HOME=$Java_8_HOME
そうすれば、端末にバージョンを切り替えるために単にJava7
またはJava8
をタイプすることができます。
(編集:Java 9用のDylans改善を追加するために更新された)
このガイドはさまざまな情報源から寄せ集められており(上記の返信や他の投稿)、完璧に機能しています。
https://brew.sh/ を参照してください。
brew install jenv
if which jenv > /dev/null; then eval "$(jenv init -)"; fi
export PATH="$HOME/.jenv/shims:$PATH"
FYI: "Tap"はbrewがインストールできる利用可能なリポジトリのリストを拡張します。
brew tap caskroom/versions
brew cask install Java
brew cask install Java6
#brew cask install Java7
#brew cask install Java8
?ターミナルを閉じて再起動して、セットアップされた新しいENV変数を確認することもできます。
すべてのJavaバージョンがここにインストールされます。/Library/Java/JavaVirtualMachines
を見てみましょう。
ls -la /Library/Java/JavaVirtualMachines
バージョンフォルダに "/ Contents/Home"を追加する必要があります。警告:あなたのマシンの実際のパスを使ってください。これらはEXAMPLEです
jenv add /Library/Java/JavaVirtualMachines/1.6.0___EXAMPLE___/Contents/Home
jenv add /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk___EXAMPLE___/Contents/Home
jenv versions
XXが上記のバージョンリストの項目の1つと一致するところ。
jenv global XX
Java -version
現在のバージョンがアスタリスクと共に使用されていることも示します。
jenv versions
Javaのバージョンを変更する
...利用可能なJavaバージョンのリストを見る
jenv versions
...その場合、XXは上記のリストの項目と一致します。
jenv global XX
SDKMAN! は、Mac OS上でJava、Gradle、Groovy、Kotlin、およびその他のJVMツールの複数のバージョンを使用するための優れたツールです。インストールと使用法の文書は明らかにメインサイトにあります。
(私は所属していません、ただ幸せなユーザーです)。
使用例として、ターミナルウィンドウに次のように入力すると、使用可能なJava SDKのバージョンのリストが表示されます(簡潔にするために編集しています)。
$ sdk list Java
Available Java Versions
+ 9ea170
> + 8u131
7u141-zulu
ここで+
はそのバージョンがインストールされていることを示します。 >
は、現在使用されているバージョンを示します。バージョンをインストールするには:
$ sdk install Java 7u141-zulu
このターミナルウィンドウでバージョンを使用するには:
$ sdk use Java 9ea170
website にあるので、jEnvをインストールすることから始めましょう。
端末でこれを実行する
brew install https://raw.github.com/gcuisinier/jenv/homebrew/jenv.rb
BashプロファイルにjEnvを追加する
if which jenv > /dev/null; then eval "$(jenv init -)"; fi
最初にインストールしたとき、jEnvにはJDKが関連付けられていません。
例えば、私はJDK 8をインストールしたばかりですが、jEnvはそれについて知りません。 jEnvでJavaのバージョンを確認する
現時点では、システム上でJavaのバージョン(jre)のみが見つかりました。 *
は現在選択されているバージョンを示します。 rvmやrbenvとは異なり、jEnvはJDKをインストールすることができません。 Oracle WebサイトからJDKを手動でインストールする必要があります。
アップルのWebサイトからJDK 6をインストールします。これでJavaが/System/Library/Java/JavaVirtualMachines/
にインストールされます。 AppleのWebサイトからJava 6をインストールするのは、SunがMAC用のJDK 6を思い付かなかったため、Appleが独自のデプロイメントバージョンを作成または変更したためです。
JDK 7とJDK 8も同様にインストールします。
JDKをjEnvに追加します。
JDK 6:
Jenvを使用してインストールされたJavaのバージョンを確認してください。
だから今私たちのシステムにはJavaの3つのバージョンがあります。デフォルトのバージョンを設定するには、次のコマンドを使います。
jenv local <jenv version>
例 - Jdk 1.6でIntelliJを起動したい
jenv local Oracle64-1.6.0.65
javaのバージョンを確認する
それでおしまい。私たちには現在、複数のバージョンのJavaがあり、それらを簡単に切り替えることができます。 jEnvには、Gradle、Ant、Mavenなどのラッパーや、グローバルまたはローカルにJVMオプションを設定する機能など、その他の機能もあります。詳細についてはドキュメントをチェックしてください。
私は最近このJavaバージョンマネージャが Jabba と呼ばれているのを見つけました。使い方はrvm(Ruby)、nvm(node)、pyenv(python)などの他の言語のバージョンマネージャと非常に似ています間違いなくそれはMac上で使用することができます。
インストール後、〜/ .jabbaにディレクトリを作成して、インストールしたすべてのJavaバージョンを配置します。 「Oracle JDK(デフォルト)/ Server JRE、Zulu OpenJDK(0.3.0以降)、IBM SDK、Java Technology Edition(0.6.0以降)のインストール、およびカスタムURLからのインストールをサポートしています。」.
基本的な使い方はGithubに載っています。はじめに簡単な要約:
curl -sL https://github.com/shyiko/jabba/raw/master/install.sh | bash && . ~/.jabba/jabba.sh
# install Oracle JDK
jabba install 1.8 # "jabba use 1.8" will be called automatically
jabba install 1.7 # "jabba use 1.7" will be called automatically
# list all installed JDK's
jabba ls
# switch to a different version of JDK
jabba use 1.8
Mac OS X 10.9.5を使用しています。これは、アプリケーションAを実行し、アプリケーションBに別のバージョンを使用するために1つのバージョンが必要なときに、マシン上で複数のJDK/JREを管理する方法です。
オンラインで助けを得てから、次のスクリプトを作成しました。
#!bin/sh
function setjdk() {
if [ $# -ne 0 ]; then
removeFromPath '/Library/Java/JavaVirtualMachines/'
if [ -n "${Java_HOME+x}" ]; then
removeFromPath $Java_HOME
fi
export Java_HOME=/Library/Java/JavaVirtualMachines/$1/Contents/Home
export PATH=$Java_HOME/bin:$PATH
fi
}
function removeFromPath() {
export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;")
}
#setjdk jdk1.8.0_60.jdk
setjdk jdk1.7.0_15.jdk
上記のスクリプトを.profileファイルに入れます。ターミナルを開いてvi .profileと入力し、上記のスニペットを付けてスクリプトを追加して保存します。 outをsource .profile
と入力すると、端末を再起動しなくてもプロファイルスクリプトが実行されます。今すぐJava -version
と入力すると、現在のバージョンとして1.7が表示されます。 1.8に変更するつもりなら、setjdk jdk1.7.0_15.jdk
行をコメントにして、setjdk jdk1.8.0_60.jdk
行のコメントを外してください。スクリプトを保存してsourceコマンドで再度実行します。異なるJavaバージョンを必要とする2つの異なるMavenプロジェクトをコンパイルする必要があるときに、このメカニズムを使用してJDK/JREの複数のバージョンを管理します。
Mac Sierra上のJenv:
インストール後に動作しない場合は、パスにJava実行可能ファイルを追加するためにこのバグ修正を行います。
export PATH="$HOME/.jenv/shims:$PATH"
eval "$(jenv init -)"
がこの仕事をすることができたとしても。その理由は、/ binフォルダがそのホームページに記述されているようにもう存在しないということですが、代わりに/ binとしてシムフォルダが使われます。
which Java
は/ Library /を印刷するかもしれません...結局、which Java
はあなたに与えます:
/Users/xxxx/.jenv/shims/Java
これはbashのためのより多くのDRYバージョンです(Vegardの回答に基づく)
1.7と1.8を興味のあるバージョンに置き換えれば、 'javaX'というエイリアスが得られます。 'X'は、バージョンを簡単に切り替えることができるようにするJavaのバージョン(下のスニペットの7/8)です。
for version in 1.7 1.8; do
v="${version: -1}"
h=Java_"$v"_HOME
export "$h"=$(/usr/libexec/Java_home -v $version)
alias "Java$v"="export Java_HOME=\$$h"
done