Error: JAVA_HOME is not defined correctly.
We cannot execute
/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/bin/java
OSX를 10.8.4로 업그레이드했습니다. OSX 업그레이드 후 JDK와 JRE를 7로 업그레이드했습니다. 그러나 프로젝트의 maven 빌드를 시도 할 때 위의 오류가 발생합니다.
내가 달릴 때 ls -al /System/Library/Frameworks/JavaVM.framework/Versions/
나는 아래의 응답을 얻는다
drwxr-xr-x 11 root wheel 374 Jul 22 22:33 .
drwxr-xr-x 10 root wheel 340 Jul 22 18:30 ..
lrwxr-xr-x 1 root wheel 10 Jul 22 18:30 1.4 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Jul 22 18:30 1.4.2 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Jul 22 18:30 1.5 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Jul 22 18:30 1.5.0 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Jul 22 18:30 1.6 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Jul 22 18:30 1.6.0 -> CurrentJDK
drwxr-xr-x 7 root wheel 238 Jul 22 18:30 A
lrwxr-xr-x 1 root wheel 1 Jul 22 18:30 Current -> A
lrwxr-xr-x 1 root wheel 59 Jul 22 18:30 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents
이를 위해 ls -al /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/bin
CurrentJDK에 더 이상 내용이 없습니다.
실행 중 /usr/libexec/java_home
나는 얻다:
/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home
OS X 작업에 익숙하지 않습니다. 여전히 성공을 거둔 시점을 놓쳤다면 알려주십시오.
답변
Apple은 JAVA_HOME을 “/ usr / libexec / java_home”으로 설정하는 것이 좋습니다.
나를 위해 일한 것은 이것을 $ () 주위에 포장하는 것이 었습니다. 그래서 다음 명령으로 $ (/ usr / libexec / java_home)과 같은 JAVA_HOME을 구성했습니다.
vim ~/.bash_profile
export JAVA_HOME=$(/usr/libexec/java_home)
source ~/.bash_profile
답변
/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/bin/java
존재하는 경우 최신 버전이 JRE 1.6 인 Apple에서 제공 한 Java입니다.
Oracle JDK (사용하는 Java 7)를 사용하려면 / usr / bin / java 경로를 완전히 설치 한 경우 사용하십시오. JRE는 Java 애플릿 전용이므로 / usr / bin / java에는 영향을 미치지 않습니다.
자세한 내용은 Oracle 설치 설명서를 참조하십시오.
거기에서 메모
다른 버전의 Java를 실행하려면 전체 경로를 지정하거나 java_home 도구를 사용하십시오.
/usr/libexec/java_home -v 1.7.0_06 --exec javac -version
자세한 내용은 java_home (1) 매뉴얼 페이지를 참조하십시오.
답변
이 링크를 따르십시오 : https://stackoverflow.com/a/44564303/5005676
mvn 스크립트가 표시되면 코드가 실패합니다 —
디버깅 및 수정 단계 :
1 단계 : mvn 스크립트 /Users/Username/apache-maven-3.0.5/bin/mvn을 엽니 다 (less /Users/Username/apache-maven-3.0.5/bin/mvn과 같은 less 명령으로 열기)
2 단계 : 스크립트에서 아래 코드를 확인하십시오.
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD="`which java`"
fi
fi
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly."
echo " We cannot execute $JAVACMD"
exit 1
fi
3 단계 : JAVACMD 변수가 설정되지 않았기 때문에 발생합니다. 따라서 오류가 표시됩니다.
참고 : 수정하려면
export JAVACMD=Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/bin/java
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/
키 : 영구 개방 emacs.profile이 되려면
명령을 게시하고 Ctrl-x Ctrl-c (save-buffers-kill-terminal)를 누르십시오.