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.