Maven derlemesi başarısız oldu: "Javac Compiler şu konumda bulunamıyor: jre veya jdk sorunu"


112

JAVA_HOME'um şu şekilde ayarlandı:

C:\Program Files (x86)\Java\jdk1.6.0_18

Koştuktan sonra Eclipse'denmaven install şu mesajı alıyorum :

Sebep:

Unable to locate the Javac Compiler in:
  C:\Program Files (x86)\Java\jre6\..\lib\tools.jar
Please ensure you are using JDK 1.4 or above and
not a JRE (the com.sun.tools.javac.Main class is required).
In most cases you can change the location of your Java
installation by setting the JAVA_HOME environment variable.

Eminim bu zor kısımdır

Lütfen bir JRE değil, JDK 1.4 veya üstünü kullandığınızdan emin olun

Yapılandırmayı çalıştırdığımda JRE6 olarak ayarlandı. Daha önce yüklemiş olduğum JDK 1.6'ya nasıl değiştirebilirim?

Eklentiyi değiştirmeyi bile denedim:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.0.2</version>
    <configuration>
        <source>1.6</source>
        <target>1.6</target>
        <executable>C:\Program Files (x86)\Java\jdk1.6.0_18\bin</executable>
    </configuration>
</plugin>

Yine de aynı hatayı alıyorum.

Eclipse Maven eklentisini kullanıyorum. Eclipse'de JRE'den JDK'ya nasıl geçebilirim?


setJAVA_HOME'un düşündüğünüz şekilde ayarlandığından emin olmak için komut satırı komutunu kullanarak iki kez kontrol ettiniz mi?
Powerlord

Günlük olarak java kullanıyorum .. burada her şey yolunda gidiyor: java -version .6.0_18-ea" time Environment (build 1.6.0_18-ea-b04) ) Client VM (build 16.0-b11, mixed mode, sharing)
Gandalf StormCrow

1
Yürütülebilir dosyayı ayarlarken <fork> true </fork> olarak ayarlayın.
Robin

Bu bize aslında hangi Java yüklemesinin java -versionçalıştığını söylemez ; JRE veya JDK kurulumu olabilir. javac -versionbiraz daha kullanışlı olurdu. Ancak, o zaman bile PATH doğruysa ve JAVA_HOME yanlışsa, bunlar yine de beklediğiniz gibi görünür.
Powerlord

1
Ayrıca, yürütülebilir dosya ... \ bin \ javac olmalıdır, yalnızca yolu değil gerçek yürütülebilir dosyayı belirtmeniz gerekir.
Robin 08

Yanıtlar:


141

JDK Eclipse'in kullandığı aşağıdaki gibi güncellemeyi deneyebilirsiniz:

JRE'yi pencereTercihler ...JavaYüklü JRE'ler menüsünde ekleyin ve ayarlayın :

JRE type: Standard VM JRE
Name: jdk1.6.0_18
JRE home directory: C:\Program Files (x86)\Java\jdk1.6.0_18

Durum bu değilse, JAVA_HOME yolundaki köşeli parantezler ve boşluklar sorunlara neden olabilir. JDK'nızı farklı bir konuma kopyalamayı ve JAVA_HOME'unuzu güncellemeyi deneyin.


1
Bu gerçekten sorunuzun ilk kısmı, JAVA_HOME meselesi tamam
Gandalf StormCrow

47
Benim için fazladan bir adım gerekiyordu: söz konusu projenin özelliklerine gitmek-> java inşa yolu-> kütüphaneler-> "JRE Sistem Kitaplığı" nı seçin, Düzenle'yi tıklayın ve "Çalışma alanı varsayılanı JRE" yi seçin
maayank

1
benim için yeterli değildi, eclipse.ini'yi düzenlemek zorunda kaldı. Bir hata olduğuna inanıyorum.
ruhsuzbaykus

Yalnızca Yürütme Ortamı -> Uyumlu JRE'lerde uygun jdk'yi kontrol ettiğimde işime yaradı.
Vedran

9
Ek olarak, Maven'i bu konfigürasyon değişikliklerinden önce oluşturduğunuz bir tutulma çalıştırma konfigürasyonundan çalıştırırsanız, Run configuration window / JRE sekmesine gitmeyi ve doğru JRE'yi seçmeyi unutmayın. Aksi takdirde, tutulma ve proje ayarlarınızı yenisine güncelledikten sonra bile eski yanlış JRE'yi kullanıyor olabilirsiniz.
Diana

20

Dosya eclipse.ini ihtiyacıvm JDK konumunuzu göstermesi için bağımsız değişkene .

Düzenleme eclipse.iniJDK evine noktasına dosya şey aşağıdaki gibi -

-vm
C:\Program Files\Java\jdk1.6.0_06

Bu, Eclipse'in makinenizdeki herhangi bir varsayılan JRE'yi değil, JDK'yı çalıştırmasını sağlar.


5
Bu benim sorunumu çözdü. Web'de araştırmaya göre, Maven JAVA_HOME kullanıyor gibi görünüyor, ancak Maven Eklentisi JAVA_HOME hakkında hiçbir şey bilmiyor ve bunun yerine Eclipse'i başlatmak için kullanılan VM'ye varsayılan olarak geliyor.
jnosek

13

Sen dene:

Git Preferences/Java/Installed JREsve konum "C:\Program Files\Java\jdk1.6.0_27\jreveya buna benzer bir şey için bir tane ekle .

Birini kaldır C:\Program Files\Java\jre6

Gördüğünüz gibi, yol C:\Program Files\Java\jre6\..\lib\tools.jaryalnızca ilk bölüm (/ .. 'ye kadar) ile değiştirilirse anlam kazanır C:\Program Files\Java\jdk1.6.0_27\jre.


10

Çatalı doğru olarak ayarlamak sorunu benim için çözdü.

<configuration>
    <fork>true</fork>
    <source>1.6</source>
    <target>1.6</target>
</configuration>

9

Ben kesin aynı sorun! Günlerdir arıyordum ve arıyordum çünkü kısayol argümanı olarak ini ar'a "-vm c: \ program dosyalarını \ java \ jdkxxxxx \ bin koy" hakkındaki tüm gevezelikler hiç yardımcı olmadı !

(Sesim sinirli mi? İnanın bana, bu bir eksiklik! Maven'i güvenilir kılmaya çalışırken bir hafta kaybettiğim için çok kızgınım!)

Çok öngörülemeyen davranışlarım vardı. Bazen derlenir, bazen derlenmez. Eğer yapsaydımmaven clean , derleyiciyi bulamadı ve başarısız oldu. Daha sonra inşa yolunda bir şeyi değiştirirsem, aniden tekrar çalıştı !!

PencereTercihlerJavaYüklü JRE'ler menüsüne gidene kadar . JDK'nın konumunu kullanarak yeni bir JRE ekledim ve ardından JRE'yi kaldırdım. Aniden Maven kararlı koştu!

Belki bu, Apache el kitabına yazı tipi boyutu 30 veya daha fazla olan harfleri koymaya değer mi?

Tüm saygımla, bu Java topluluğu için çok çirkin! Bütün bu insanlar tarafından bu tür sorunlarını çözmeye çalışırken kaç gün kaybettiklerini hayal edemiyorum! Bunun nihai bir sürüm olarak yayınlandığını hayal bile edemiyorum. Ben şahsen böyle bir şeyi beta adı altında yayınlamaya bile cesaret edemem yazılım ...

Her iki şekilde de saygılar .... Bir haftalık kurcalamadan sonra nihayet geliştirmeye başlayabilirim. Umarım patronum bunu öğrenmez. Onu ikna etmem çaba birçok aldı değil .NET gitmek ve zaten bu konuda üzülüyorum.


1
sonuç olarak, onu tutulmadan değil konsoldan kullanın, bu tür sorunları yaşamayacaksınız, birkaç ay kullandıktan sonra fark ettim ki, şimdi maven ile oldukça rahat
Gandalf StormCrow,

Daha çok bir tutulma ... m2e problemi .. Aynı problemi yaşıyorum ve diğer IDE'ler (netbeans ve IDEA) mükemmel çalışıyor.
joshua

3

Eclipse'de Çalıştır -> Maven kurulumunu kullanarak aynı sorunu yaşadım. JAVA_HOME ve eclipse.ini iyiydi ve en son JDK'ma işaret ediyordu. Ancak m2clipse JRE kullandı. Eclipse dışında mvn yüklemesini kullanmak iyi çalıştı!

Benim durumumda sorunu şu şekilde çözdüm:

  1. Eclipse'de gezinin: menü PenceresiTercihlerJavaYüklü JRE'ler
  2. Bir JRE ve JDK için iki etkin olmayan girdi vardı. Aktif olan, en son kurulan JDK idi. Maven'ın kullanması gerekenler dışındaki tüm girişleri silin.

Sanırım Maven hangisinin aktif olduğunu hesaba katmıyor ...



3

Sadece Maven 3.0.4 yüklü belirledik M2_HOME, M2veJAVA_HOME buna göre. Daha sonra aşağıdaki komutları çalıştırdım:

mvn archetype:generate....

mvn compile

Ben gibi başarısız mesajı var: maven unable to locate javac compiler.

Bilgisayarımda, varsayılan olarak JRE'yi C: \ program files \ java \ jre.1.6 konumuna yükledim . Ve diğer C: \ java \ jdk1.6'ya sahibim veJAVA_HOME bu C: \ java \ jdk1.6 olarak ayarlıyorum .

Ortamımda yanlış bir şey görmedim. Aradıktan sonra, bakmaya karar verdim mvn.bat, %JAVA_HOME%her adımı tekrarladım ve doğru görüntüleniyordu C:\java\jdk1.6, ancak komutu çalıştırdığımdamvn --version Java home: C: \ program files \ java \ jre1.1.6 görüntülendi .

Sonunda, ayarlamam gerektiğini öğrendim -Djava.home=c:\java\jdk1.6 aşağıdaki komutta olduğu gibi ve şimdi iyi çalıştığımı :

%MAVEN_JAVA_EXE% %MAVEN_OPTS% -classpath %CLASSWORLDS_JAR% "-Dclassworlds.conf=%M2_HOME%\bin\m2.conf" "-Djava.home=%JAVA_HOME%" "-Dmaven.home=%M2_HOME%" %CLASSWORLDS_LAUNCHER% %MAVEN_CMD_LINE_ARGS%

Not: Bu, mvnEclipse ile değil, komut satırındakiler içindir.


Hey, gitmene gerek yok ve yaptığın her adımı her zaman açıkla. Lütfen konuya nasıl cevap verileceğine bakın .
mtk

Bu bir hack gibi görünüyor (ama hey ... eğer sizin için çalışıyorsa!) Ama ilginç olan maven komut satırının yanlış java evini seçmesi - bu bizim güncel sorunumuz.
plazma147

2

Yüklü JRE'nin konumunu JDK'nın kendisinde bulunan dizine değiştirerek sorunu çözdüm. Ortam JAVA_HOMEdeğişkeninin uygun değerinin ayarlanması sorunu çözmedi.

Benim durumumda iki dizin var

  • C:\Program Files\Java\jdk1.7.0_03 --> For JDK

  • C:\Program Files\Java\jre7 --> For JRE

Başlangıçta C:\Program Files\Java\jre7Eclipse'de Kurulu JRE olarak ayarladım ve Maven durumunda aynı hatayı alıyordum (Ant iyi çalışıyordu).

C:\Program Files\Java\jdk1.7.0_03\jre7Eclipse'de kurulu JRE'yi Yüklü JRE olarak değiştirerek sorun çözülür.


2

Projenizi belirli bir Eclipse yapılandırmasından çalıştırıyorsanız, doğru JDK'yı ekledikten sonra 'Yapılandırmaları Çalıştır' -> 'Maven yapılandırmanız' -> 'JRE sekmesi' içinden Java Runtime'ı değiştirmeniz gerektiğini unutmayın. Eclipse tercihleriniz.


2

Görünüşe göre Maven JDK'yı değil JRE'yi kullanıyor. JDK'yı kurmadan önce Maven'i kurmuş olabilirsiniz?

Ayarlar dosyalarını kontrol edin . Sistem, kullanıcı ve proje olmak üzere toplam üç tane vardır. Büyük olasılıkla kurulum yapılandırmasında ($ M2_HOME / conf / settings.xml) veya muhtemelen kullanıcı başına yapılandırmada ($ {user.dir} /. M2 / settings.xml).


2

Yalnızca Eclipse kurulumu

Aşağıdaki adımları uygulayın:

  1. Eclipse proje Özelliklerine sağ tıklayın

  2. Java Derleme Yolu → Kitaplıklar

  3. JRE Sistem Kitaplığı'nı seçin → Editdüğmesine tıklayın

  4. "Yüklü JRE'ler ..." düğmesini tıklayın

  5. JRE'yi şu şekilde düzenleyin: JRE Home = JAVA_HOME veya JAVA_HOME \ jre olarak ayarlayın

Ekran görüntüsü:

Buraya resim açıklamasını girin


Bu benim için çalıştı, teşekkürler. JRE ana sayfasını JDK klasörü olarak değiştirdim.
LadyBernkastel

1

ProjeÖzelliklerJava Oluşturma Yolu menüsüne sağ tıklayın .

JRE Sistem Yolu → Düzenle'yi seçin . Workspace Default JRE'yi seçin ve JDK> 1.4'e yönlendirin.


1

Menü PenceresiTercihlerJavaYüklü JRE'lerYürütme Ortamları -> sağ taraftaki onay kutusuna tıklayın.


1

Çözüm basit. Bazen Eclipse Windows'unTercihlerJavaYüklü JRE işaretC:\Program files\Java\jre .

Onu değiştirdiğimde C:\Program files\Java\JDK 6.0\jre% 100 çalıştı.


1

Diğerlerinin de bahsettiği gibi, Eclipse Penceresi Tercihler ...JavaYüklü JREs işaret etmelidir JDK , yüklü değil JRE için. Ancak o zaman ../libhata mesajında ​​belirtilen klasörü bulabilir .

Bununla bile sorun tekrarlayabilir. Eclipse v4.2'deki (Juno) çıkış yolum MavenProjeyi güncelle menüsünü yapmak ... ardından problem ortadan kalkıyor.

Bunun nedeninin, Eclipse tarafından oluşturulan bazı dosyaların (.classpath, .project, .preferences) bu sorunları yaşadığım proje için Subversion'da olduğundan şüpheleniyorum. Bu nedenle, bir SVN güncellemesi sorunu ortaya çıkarır ve Eclipse'de Maven'den yapılan bir yapılandırma güncellemesi sorunu tekrar çözer.

Gerçek çözüm: Eclipse tarafından oluşturulan .files dosyasını sürüm kontrolünden çıkarın ve Maven Eclipse eklentisinin proje yapılandırmasını işlemesine izin verin. (Ek öneriler / öneriler açığız) .


1

Benim durumumda, Eclipse menüsünde ÇalıştırHata Ayıklama Yapılandırmaları .

JRE sekmesinde JRE yerine JDK'yı seçmek sorunu çözdü.


1

Amazon Linux'ta da aynı sorunu yaşadım. Görünüşe göre JDK'nın geliştirici sürümünü yüklemem gerekiyor:

sudo yum -y install java-1.7.0-openjdk-devel

1

Eclipse menüsüne gidin PencereTercihler ...JavaYüklenen JRE'ler , JRE'yi değil, yüklediğiniz JDK'yı göstermelidir.


Ancak bu, daha önceki birçok cevapta da var.
Peter Mortensen

0

Ayrıca Eclipse'in güncellenmiş tüm değişikliklere sahip olduğundan emin olabilirsiniz. Bunu yapmak için projenize sağ tıklayın ve ardından "Yenile" menü öğesine basın.


0

Diğer birçok yanıt, Eclipse'inizi bir JRE yerine bir JDK'ya yönlendirmenizi söyler.

İşte bunun nasıl yapılacağına dair adım adım daha spesifik / net [burada herhangi bir cevapta gördüğümden] başka bir cevap: JDK'yı nasıl kurarsınız?

Bu aynı problem için beni çözen şeydi.


0

Eclipse.ini dosyanızdaki "-vm" nin iki ayrı satırda olduğundan emin olun, yani:

-vm
C:\Program Files\Java\jdk1.6.0_06

0

Derleyici eklentisinin JAVA_HOME'un işaret ettiği JDK konumu yerine görüntülenen JRE konumunda olması için derleyicinin konumunun bir POM'da tanımlandığını tahmin ediyorum .


@Robin Bunu tam olarak nerede aramalıyım? pom bana iyi görünüyor<groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.0.2</version> <configuration> <source>1.6</source> <target>1.6</target>
Gandalf StormCrow

Tanımlanmış bir <yürütülebilir> yoksa, baktığınız pom tanımlanmış olan bir ana pomdan miras almadığı sürece, sorununuza neden olan bu değildir.
Robin 08

Yürütülebilir dosyayı tanımlarken, <fork> öğesini de true olarak ayarlamanız gerekir.
Robin 08

0

Sen belirtmek gerekir JAVA_HOMEyılında mvn.ini(o Maven klasöründe var /bin) ve senin sorunun ortadan kalkacaktır.


0

JAVA_HOME'u ayarlarsanız ve sorun devam ederse, aşağıdakileri deneyin.

(Aynı sorunu yeni kurulmuş bir bilgisayarda yaşadım.)

Eclipse kullandığınızı varsayarsak.

  • Açık PencereTercihlerJavajre en Yüklü . Elinizdeki her şeyi kaldırın, kullanmak istediğinizi ekleyin (JDK, JRE yok!)
  • Aynı pencerede maven kurulumlarını açın, indirdiğiniz ve bir yere çıkardığınız Maven kurulumunu ekleyin. ( Gömülü Maven kurulumunu kullanmayın . Bilinen bazı hataları vardır.)

Bu kadar. Projeniz bu tür sorunlardan muzdarip olmayacak.


0

JUnit sürümü nedeniyle aynı hatayı aldım . Üç tane 3.8.1 vardı ve 4.8.1 olarak değiştirdim.

Yani çözüm şudur:

POM'a gitmeli ve bağımlılığınızın böyle göründüğünden emin olmalısınız

<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.8.1</version>
  <scope>test</scope>
</dependency>

0

Ben eklemek için maven-derleyici-Eklentinin ayarlarını değiştirmiş executableve forkgerçek değer ile.

<configuration>
    <fork>true</fork>
    <source>1.6</source>
    <target>1.6</target>
    <executable>C:\Program Files\Java\jdk1.6.0_18\bin\javac</executable>
</configuration>

Benim için çalıştı.


0

Yap Echo %JAVA_HOME%ve sonra mvn --version.

JRE yolu daha sonra menü gitmek ... aynı olmalıdır PencereTercihlerJavaJRE yüklü neyi aynı olmalıdır yerini Java_Homegösteriyor.


0

Git Özellikler proje üzerinde diyalog ve sağ tıklama.

In Bağlantılı kaynaklar , java_home denilen ve JDK konumda koymak yeni bir yol, ": \ Program Files \ Java \ jdk1.8.0_73 C" gibi bir şey ekleyin.

Bu kadar!!


Herhangi bir değişken eklemeniz gerektiğini düşünmüyorum .. sadece çalışma alanı JDK için çalıştırma ayarları altındaki JDK yapılandırmasını değiştirin JDK
Phani

0

Bu sorunun çözümü çok basit ...

Ant derleme dosyanız yoksa, onu oluşturun. Eclipse'de kolayca bir Ant dosyası oluşturabilirsiniz .

Ant derleme dosyası oluşturmak için bağlantıya başvurun [ http://www.codejava.net/ides/eclipse/how-to-create-ant-build-file-for-existing-java-project-in-eclipse] .

Şimdi verilen adımları izleyin:

1) Karınca derleme dosyanızı görünüm penceresindeki Ant görünümüne ekleyin .

2) Ant oluşturma dosyanıza sağ tıklayın ve Farklı Çalıştır'ı ve bu "Karınca Yapısı" ndaki ikinci seçeneği seçin .

3) Şimdi çeşitli seçenekler ve sekmeler içeren bir iletişim kutusu açılacaktır.

4) JRE sekmesini seçin .

5) Üç radyo düğmesi göreceksiniz ve bunlar bir seçenek olarak JRE veya JDK'nın seçili olacak.

6) Radyo düğmesi seçeneklerinde JRE seçilmişse dikkatlice bakın ve ardından JDK olarak değiştirin .

7) Uygula'yı tıklayın.

Bu kadar...!!!

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.