Java 7のみを搭載したMountain Lion


39

Mountain Lionのクリーンインストールを実行し、JDK7をインストールしました。

java -versionターミナルでjava version "1.7.0_05"正しく返されますが、Java Preferencesやその他のJavaプログラム(Eclipseなど)でもJava SE 6をインストールするように求められます

Java 7を使用すると、コマンドラインからEclipseを完全に起動できます。

Java 6をインストールせずにこれを機能させる方法はありますか?


1
これは本当にめちゃくちゃです。一体なぜこれはまだ修正されていないのですか AppleがJava更新手順の制御を放棄した理由の主な動機は、セキュリティの向上ではありませんか?なぜOSXが古いJavaをインストールするように促すのですか?いいね!
ゲントマット

@gentmatt Java 7は、Java 6の単純なアップデートではありません。OSを変更するようなものです。大きいバージョンを使用すると問題が発生し、両方のメジャーバージョンがセキュリティ修正のために更新されます
-user151019

@gentmatt AppleはもはやJavaを望んでおらず、本質的にJavaを放棄しました。Oracleはボールを拾うことを選択しました。
トールビョールンラヴンアンデルセン

1
それはそれは今...非推奨だことを考えると、Java 6の必要とするのは愚かだ
ドナル・フェローズ

回答:


27

JDK 7は/Library/Java/JavaVirtualMachines/1.7.0.jdkに、JDK 6は/ System / Library / Java / JavaVirtualMachinesにインストールされます。

OS 6にJava 6のインストールを提案する代わりにJava 7を受け入れるようにするには、単純なシンボリックリンクで十分です。

sudo mkdir /System/Library/Java/JavaVirtualMachines
sudo ln -s /Library/Java/JavaVirtualMachines/1.7.0.jdk /System/Library/Java/JavaVirtualMachines/1.6.0.jdk

ほとんどのJava Programmsは、Java 6をインストールすることなく、この小さなハックで実行されます。OSXのJava Preferences(および他の一部)は、起動時にJVMのバージョンを明示的にチェックするようには見えません。


1
2行目には「su」を含めず、「sudo ln -s .....」にする必要があります
デビッドモラレス

3
JDK 7u9を含む新規インストールを行ったところ、インストールされました/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk; それ以外の場合、指示は正常に機能しました。
ジェフリーワイズマン

3
シンボリックリンクの実行に注意してください... Appleは最近1.6のセキュリティアップデートをリリースしました。Appleからこのアップデートを適用すると、シンボリックリンクはアップデートをだましているように見え、シンボリックリンクが指す場所、つまりOracle 1.7に1.6アップデートをインストールします。

これは、JavaプログラムがJava 6を必要とし、7ではなくJava 6を必要とする場合、他のバージョンを使用すると壊れる可能性があります。
user151019

あなたがマーベリックス上にある場合はここでより良い解決策は以下のとおりです。stackoverflow.com/questions/19563766/...
jedesah

4

注:本当にjava6を必要とし、java7で動作しないものがある場合は、java7のインストールを保留することができます。その理由は、以下で説明するように、7 pkgは一部のapple-6-javaアイテムをいじるので、6と7の両方を同じmacintoshに保持しようとするのは少し難しいかもしれないからです。そのため、これを展開する前に、同じMacで6と7を維持するための段階的な手順を探しています... http://reviews.cnet.com/8301-13727_7-57533880-263/も参照してくださいjava-preferences-missing-after-latest-os-x-java-update / 2012年10月18日。

詳細jre-7u9-macosx-x64.dmgのプレインストールシェルスクリプトは、以下の警告なしに、Apple pref-pane(およびプラグイン)を単に削除します。

#!/bin/bash
PLUGIN_BASEDIR=/Library/Internet\ Plug-Ins
PLUGIN_NAME=${PLUGIN_BASEDIR}/JavaAppletPlugin.plugin
MKDIR=`which mkdir`
RM=/bin/rm
# Remove the symlink before installation forcing ystem Preferences.app to refresh its cache
PREF_PANE_NAME=JavaControlPanel.prefpane
PREF_PANE_DEST=/Library/PreferencePanes/
# Actually removes the symlink
if [[ -h "${PREF_PANE_DEST}/${PREF_PANE_NAME}" ]]; then
     ${RM} -rf "${PREF_PANE_DEST}/${PREF_PANE_NAME}"
fi
# Create the /Library/Internet Plug-Ins if not present
if [[ ! -d "${PLUGIN_BASEDIR}" ]]; then
     ${MKDIR} -p "${PLUGIN_BASEDIR}"
fi
# If Apple's plugin is present, then delete it
if [[ -h "${PLUGIN_NAME}" ]] && [[ -d "${PLUGIN_NAME}" ]]; then
    ${RM} -rf "${PLUGIN_NAME}"
fi

===そしてインストール後スクリプトはシンボリックリンクを設定します===

#!/bin/bash
LN=`which ln`
CHOWN=`which chown`
PLUGIN_FILEPATH=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin
PREF_PANE_NAME=JavaControlPanel.prefpane
PREF_PANE_SRC=/Library/Internet\ Plug-       Ins/JavaAppletPlugin.plugin/Contents/Home/lib/deploy/JavaControlPanel.prefpane
PREF_PANE_DEST=/Library/PreferencePanes/
if [ ! -h "${PREF_PANE_DEST}/${PREF_PANE_NAME}" ]; then
    ${LN} -s "${PREF_PANE_SRC}" "${PREF_PANE_DEST}"
fi
${CHOWN} -R root:wheel "${PLUGIN_FILEPATH}"

-2

Java 7のみを搭載したMountain Lion

あなたは正しい軌道に乗っています... 

Java 6をインストールせずに

…質問で説明されているように、インストールのプロンプトが表示されます。

したがって、私の短い答えはイエスです。Java7を単独で使用できます。ただし、Java 6がインストールされているわけではありません。

試してください:

  1. AppleによるJavaのインストールを許可する
  2. 以下の2つのディレクトリから、不要になったJavaのバージョンを削除します。

    /ライブラリ/ Java / JavaVirtualMachines

    / System / Library / Java / JavaVirtualMachines

(このような場合は、/System物事に干渉しないように、通常のアドバイスを無視しても安全です。)


2
Java 7は/ Library / Java / JavaVirtualMachinesにインストールされ、Java 6は/ System / Library / Java / JavaVirtualMachinesにインストールされます。/System/Library/Java/JavaVirtualMachinesから1.6.0.jdkを削除すると、インストールダイアログが再びポップアップします。動作すると思われるのは、1.7.0.jdk(/ Library / ...の下)へのシンボリックリンク1.6.0.jdk(/ System / ...の下)を作成することです。JavaバージョンをチェックしないJavaプログラムは正常に実行されます(Java 5または6がインストールされているかどうかをチェックするように見えるため、Java Preferencesが起動時にブロックされます)
ニコラス

クール–独自の回答を追加しますか?私に投票してください-私は攻撃をしません-推測は質問に対して明らかに間違っていました。投票に投票すると、他のユーザーがJava関連の問題に対して同様に誤った推測をしないようになります。
グラハムペリン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.