Java 7 만있는 Mountain Lion


39

Mountain Lion을 새로 설치하고 JDK7을 설치했습니다.

java -version터미널에서 java version "1.7.0_05"올바르게 리턴 되면 여전히 Java 환경 설정 및 Eclipse와 같은 일부 다른 Java 프로그램이 Java SE 6을 설치하라는 프롬프트를 표시합니다.

Java 7을 사용하여 명령 행에서 Eclipse를 완벽하게 시작할 수 있습니다.

Java 6을 설치하지 않고도이 작업을 수행 할 수있는 방법이 있습니까?


1
이것은 정말 엉망입니다. 왜이 문제가 여전히 해결되지 않습니까? Apple이 Java 업데이트 절차에 대한 통제권을 포기한 이유가 보안 강화의 주요 동기가 아닙니까? 왜 OSX가 여전히 오래된 Java를 설치하라는 메시지를 표시합니까? 이케!
gentmatt

@gentmatt Java 7은 Java 6을위한 간단한 업데이트가 아닙니다. OS 변경과 비슷합니다. 더 큰 버전의 두 주요 버전을 사용하여 중단 할 몇 가지 보안 수정 프로그램에 대한 업데이트
user151019

@gentmatt Apple은 더 이상 자바를 원하지 않았고 본질적으로 버렸습니다. 오라클은 공을 집어 들었습니다.
Thorbjørn Ravn Andersen

1
더 이상 사용되지 않는다는 점을 감안할 때 Java 6을 요구하는 것은 여전히 ​​멍청합니다.
Donal Fellows

답변:


27

JDK 7은 /Library/Java/JavaVirtualMachines/1.7.0.jdk에, JDK 6은 / System / Library / Java / JavaVirtualMachines에 설치됩니다.

Java 6 설치를 제안하지 않고 Java 7을 받도록 OS X를 속이려면 간단한 심볼릭 링크로 충분합니다.

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 프로그램은 Java 6을 설치할 필요없이이 작은 해킹으로 실행됩니다. OS X의 Java 환경 설정 (및 기타 일부)은 JVM이 시작될 때 명시 적으로 JVM 버전을 확인하는 것처럼 보이지 않습니다.


1
두 번째 줄에는 "su"가 없어야합니다. "sudo ln -s ....."
David Morales

3
방금 JDK 7u9를 포함하여 새로 설치했으며 다음 위치에 설치되었습니다 /Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk. 그렇지 않으면 지침이 잘 작동했습니다.
Geoffrey Wiseman 1

3
symlink를 조심하십시오 ... Apple은 최근 1.6 보안 업데이트를 발표했습니다. Apple에서이 업데이트를 적용하면 symlink가 업데이트를 속이는 것처럼 보이고 symlink가 가리키는 위치 (예 : Oracle 1.7)에 1.6 업데이트를 설치합니다.

Java 프로그램에 Java 6이 필요하고 7이 아니라면 다른 버전을 사용할 때 중단 될 수 있습니다.
user151019

매버릭스에있는 경우 더 나은 솔루션은 다음과 같습니다. stackoverflow.com/questions/19563766/…
jedesah

4

참고 : 실제로 java6이 필요하고 java7과 작동하지 않는 것이있는 경우 java7 설치를 연기 할 수 있습니다. 7 pkg가 아래에 설명 된 것처럼 apple-6-java 항목 중 일부를 혼란스럽게하기 때문에 동일한 매킨토시에 6과 7을 모두 유지하는 것이 약간 까다로울 수 있습니다. 그래서, 이것을 롤아웃하기 전에 같은 맥에 6과 7을 유지하는 방법에 대한 단계별 지침을 찾고 있습니다 ... 또한 http://reviews.cnet.com/8301-13727_7-57533880-263/ 2012 년 10 월 18 일의 java-preferences-missing-after-latest-os-x-java-update /

세부 사항 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

=== 그리고 설치 후 스크립트는 symlink를 설정합니다 ===

#!/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을 설치하지 않고

… 질문에 설명 된대로 설치하라는 메시지가 표시됩니다.

제 대답은 그렇습니다. Java 7 만 가질 수 있습니다. Java 6을 설치하지 않은 경우.

시험:

  1. Apple의 Java 설치 허용
  2. 아래 두 디렉토리에서 더 이상 필요하지 않은 Java 버전을 제거하십시오.

    / 라이브러리 / Java / JavaVirtualMachines

    / 시스템 / 라이브러리 / Java / JavaVirtualMachines

(이와 같은 경우에는 방해하지 않는 일반적인 조언을 무시할 수 있다고 생각합니다 /System.)


2
Java 7은 / Library / Java / JavaVirtualMachines에 설치되는 반면 Java 6은 / System / Library / Java / JavaVirtualMachines에서 / System / Library / Java / JavaVirtualMachines에서 1.6.0.jdk를 삭제하면 설치 대화 상자가 다시 나타납니다. 작동하는 것처럼 보이는 것은 1.6.0.jdk (/ System / ... 아래)를 1.7.0.jdk (/ Library / ... 아래)로 만드는 것입니다. Java 버전을 확인하지 않는 Java 프로그램은 제대로 실행됩니다 (Java 5 또는 6이 설치되어 있는지 확인하는 것처럼 Java 기본 설정 블록 시작)
Nicolas

쿨 – 당신은 당신의 자신의 답변을 추가 하시겠습니까? 제발 투표하십시오 – 나는 화를 내지 않을 것입니다 – 그 질문에 대한 추측은 분명히 틀 렸으며,이 투표는 다른 사용자들이 Java 관련 문제에 대해 비슷하게 잘못된 추측을하지 않도록 도울 것입니다.
Graham Perrin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.