2015-07-03 17 views
5

Terminalden ubuntu'da (ubuntu) mvn --version yazdığımda, aşağıdaki çıktıyı elde ederim.maven JAVA_HOME'u bir çevre değişkeni olarak tanımladı inUbuntu

Warning: JAVA_HOME environment variable is not set. 
Apache Maven 3.0.5 
Maven home: /usr/share/maven 
Java version: 1.7.0_79, vendor: Oracle Corporation 
Java home: /usr/lib/jvm/java-7-openjdk-amd64/jre 
Default locale: en_IN, platform encoding: UTF-8 
OS name: "linux", version: "3.13.0-32-generic", arch: "amd64", family:  "unix" 

herhangi java_home ortam değişkeni belirtilmiş ne zaman, nasıl maven java ev benim sistemde yüklü olan/usr/bin/java komutundan bu yolu bulmaya çalışan path.Is yüklü oluyor ve eğer öyleyse jre'ye kadar yolu alıyor.

Not: Ayrıca herhangi bir maven yapılandırmasında herhangi bir java yolu bulamadım.

Teşekkürler.

System.getProperty("java.home", "<unknown java home>") 

java.home

JDK içindir JAVA_HOME aksine JRE içindir:

cevap

3

gibi, değeri aşağıdaki çağrısından geliyor CLIReportingUtils.java (Java Ana alır maven sınıfında) gösterdi. Maven, JRE evini gösteriyor.

+0

Soruma göre maven hiç ayarlamadığımda JAVA_HOME gibi java yolunu seçiyordu. Bu ubuntu için. – crackerplace

+0

Sistem özellikleri sadece Java içindir. Bunu işletim sistemine ayarlamıyorsunuz. Bir komut (-DpropertyName) çalıştırırken ayarlayabilirsiniz: http://stackoverflow.com/a/7054981/644669 – Zakaria

+0

Tamam.Gut bu java işlemi bu sistem özelliğini ayarlıyor ve bu yolu nasıl alabiliyor? ? – crackerplace

0

Sanırım şimdi anlıyorum.Maven komut dosyasında i.e (usr/share/maven/bin/mvn) çeşitli seçeneklerle kurulu java'yı bulmaya çalışıyorlar.

Yani bir yerde onlar "hangi java" noktaları aşağıda

java -> /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 

Umut onun java yolunu alma nasıl bu benim sistemde

JAVACMD="`which java`" 

Ve şimdi aşağıda yapıyoruz.

+0

Israr ettiğim için üzgünüm ama cevabımda işaret ettiğim gibi, maven kaynak kodunda maven komutunun şu komutu çağırdığını görebiliyorsunuz: 'System.getProperty (" java.home "," ")' – Zakaria

1

JAVA_HOME ortam değişkeni ve Java home: /usr/lib/jvm/java-7-openjdk-amd64/jre çıkışı arasında bir fark olduğunu söyleyebilirim. İkincisi, yalnızca kurulum dizini see here'un çıktısıdır.

Böylece maven Java'yı arka planda çalıştıracaktır ve java nerede kurulduğunu bilir.

+0

Evet.Maven, bu java lokasyonunu kendisi için JAVA_HOME olarak ve dolayısıyla mvn --version ile yazdırıldığı anlamına geliyordu. @Zakaria tarafından yayınlanan – crackerplace

+1

, Maven, yalnızca kurulum dizini olan "java.home" özelliğini okur. System.out.println (System.getProperty ("java.home")) 'her zaman kurulum dizinidir, System.out.println (System.getenv (" JAVA_HOME "))' ortam değişkeninin değeri – hinneLinks

+0

Bunun için teşekkürler. Cevabınızı ve zakaria's'ı seçerken kafanız karıştı. Sadece zakaria'nın kaynak kodu bağlantısı için gitti. – crackerplace

İlgili konular