Maven derlemesi sırasında JAVA_HOME hatası, OSX-10.8.4 Sürümü


10
Error: JAVA_HOME is not defined correctly.
  We cannot execute
  /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/bin/java

OSX'imi 10.8.4'e yükselttim. OSX yükseltmesinden sonra JDK ve JRE sürümlerimi 7'ye yükselttim. Ancak, maven projesinin derlenmesini denediğimde yukarıdaki hatayı alıyorum.

Koştuğumda ls -al /System/Library/Frameworks/JavaVM.framework/Versions/

Aşağıdaki yanıtı alıyorum

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

Bunun için ls -al /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/bin

CurrentJDK'da daha fazla içerik göremiyorum.

Koşarken /usr/libexec/java_home

Alırım:

/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home

OS X ile çalışmak konusunda çok yeniyim. Bunu başarılı kılmak için herhangi bir noktayı kaçırıp kaçırmayacağımı bana bildirin.


Çalıştırmak Can echo $JAVA_HOME, ls -al /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/binve ls -al /System/Library/Frameworks/JavaVM.framework/Versions/ve sorunun sonucunu eklemek?
nohillside

@patrix .bashrc -> export JAVA_HOME=/usr/libexec/java_home .profile -> export PATH=${JAVA_HOME}/bin:$PATH export CATALINA_HOME=/Library/Tomcat/Home .bashrc ve .profile yukarıda belirtilen komutlara sahiptir ..
arvind406

@Patrix .. Java yolunun bashrc dosyasından alındığını görüyorum. JAVA_HOME'u terminalden yalnızca ayrı olarak ayarladığımda bir proje oluşturabiliyordum. Bu neden böyle olabilir? Herhangi bir fikir ?
arvind406

Yanıtlar:


9

Apple, JAVA_HOME'u “/ usr / libexec / java_home” olarak ayarlamanızı önerir.

Benim için çalışan bu $ () etrafında sarma oldu. Bu yüzden $ (/ usr / libexec / java_home) gibi JAVA_HOME'u aşağıdaki komutlarla yapılandırdım:

vim ~/.bash_profile 
export JAVA_HOME=$(/usr/libexec/java_home)
source ~/.bash_profile

Bu benim için mükemmel çalıştı!
rdegges

2

/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/bin/java Varsa, Apple tarafından sağlanan Java, en son sürümü JRE 1.6 olacaktır.

Oracle JDK'yi (bahsettiğiniz java 7) kullanmak için, tam olarak yüklediyseniz / usr / bin / java yolunu kullanın. JRE'nin yalnızca Java uygulamaları için olduğunu ve / usr / bin / java'yı etkilemediğini unutmayın

Daha fazla bilgi için Oracle kurulum belgelerine bakın

ve oradan not edin

Java'nın farklı bir sürümünü çalıştırmak için tam yolu belirtin veya java_home aracını kullanın:

/usr/libexec/java_home -v 1.7.0_06 --exec javac -version

Daha fazla bilgi için java_home (1) kılavuz sayfasına bakınız.


.profile -> ihracat PATH = $ {JAVA_HOME} / bin: $ PATH ihracat CATALINA_HOME = / Kütüphane / Tomcat / Ana Sayfa
arvind406

@arvind Bu yorumlar ne anlama geliyor?
user151019

@ arvind406 evet ama bu cevabımı ne ekliyor ya da soruyor?
user151019

önceki yorumlar yanlış pencerede yorumlandı. Özür. 10.8 OSX'e yükselttikten sonra JDK ve JRE'yi 7'ye yükselttim. Soruyu bir kez daha güncelledim. lütfen bir göz atın ve herhangi bir yerde yanlış gidip gitmediğimi bana bildirin. Bu komutu çalıştırırken /usr/libexec/java_homealıyorum/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home
arvind406 23:13

@ Mark .. Yolun bashrc dosyasından alınmadığını görüyorum. JAVA_HOME'u terminalden yalnızca ayrı olarak ayarladığımda bir proje oluşturabiliyordum. Bu neden böyle olabilir? Herhangi bir fikir ?
arvind406

1

Bu bağlantıyı izleyin: https://stackoverflow.com/a/44564303/5005676 mvn komut dosyasını görürseniz: Kod burada başarısız olur ---

Hata ayıklama ve sabitleme adımları:

Adım 1: mvn betiğini /Users/Username/apache-maven-3.0.5/bin/mvn (Daha az komutla açın: less /Users/Username/apache-maven-3.0.5/bin/mvn)

Adım 2: Kodda aşağıdaki kodu bulun:

  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

Adım3: JAVACMD değişkeni ayarlanmadığı için oluyor. Böylece hatayı görüntüler.

Not: Düzeltmek için

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/

Anahtar: Kalıcı olmasını istiyorsanız emacs.profile dosyasını açın

komutları yükleyin ve Ctrl-x Ctrl-c (save-buffers-kill-terminal) tuşuna basın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.