Windows'a Maven yüklenemiyor: "JAVA_HOME geçersiz bir dizine ayarlanmış"


98

Maven öğreticisini harfiyen takip ettim ama yine de Maven'ı Windows'a yükleyemiyorum.

Aşağıdakileri komut isteminde çalıştırdığımda:

E:\Documents and Settings\zach>mvn --version

Alırım:

'mvn' is not recognized as an internal or external command, operable program or batch file.

Maven yükleme klasörüne gittim ve koştum mvn --versionve şunu elde ettim :

E:\java resources\apache-maven-2.2.0\bin>mvn --version
ERROR: JAVA_HOME is set to an invalid directory.
JAVA_HOME = "E:\Sun\SDK\jdk\bin"
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation

ama koştuğumda şunu alıyorum java -version:

java version "1.6.0_14"
Java(TM) SE Runtime Environment (build 1.6.0_14-b08)
Java HotSpot(TM) Client VM (build 14.0-b16, mixed mode)

Yani Java yüklüyüm. Herhangi biri problemin ne olduğunu biliyor mu?

Yanıtlar:


172

Sorunlar sizin yollarınızla ilgilidir.

  1. Komut arama yolunuzda "E: \ java kaynakları \ apache-maven-2.2.0 \ bin" dizininin olduğundan emin olun.

  2. JAVA_HOME değişkeninin , Java yüklemeniz için ana dizini ifade ettiğinden emin olun . Java'yı "E: \ Sun \ SDK \ jdk \ bin" konumundan çalıştırıyorsanız, JAVA_HOME değişkeninin "E: \ Sun \ SDK \ jdk" öğesini göstermesi gerekir.

    NB: JAVA_HOME "\ bin" 1 ile bitmemelidir .

  3. JAVA_HOME değişkeni 2'ye noktalı virgül koymadığınızdan emin olun .

    Not: JAVA_HOME, noktalı virgülle ayrılmış dizin adlarının "PATH benzeri" listesi değil, tek bir dizin adı olmalıdır.

Ayrıca, Maven on Windows talimatlarında, anahtar yol adlarındaki boşluklarla ilgili bu tavsiyeyi göz ardı ederseniz sorunlarla karşılaşabileceğinizi unutmayın .

"Maven, birçok çapraz platform aracı gibi, önemli yol adlarında boşluk karakterleri olduğunda sorunlarla karşılaşabilir ."

"Java SDK'yı (ör. Oracle'ın indirme sitesinden) kurmanız ve onu c: \ j2se1.6 gibi boşluksuz bir yol adına yüklemeniz gerekir ." '

"Maven dağıtımını paketinden çıkarmanız gerekiyor. Kaynak kodunuzun ortasında paketini açmayın; bir konum seçin ( yolda boşluk olmadan! ) Ve orada açın."

Bunun basit çaresi , yolda boşluk kalmaması için Java veya Maven'i farklı bir konuma yeniden yüklemek olabilir.


1 - .... kurulum konumunuzun adı için çılgınca bir seçim yapmadıysanız .

2 - Görünüşe göre Windows yol problemlerine yönelik yaygın bir "voodoo" çözümü, sonunda bir noktalı virgül atmaktır. Genel olarak tavsiye edilmez, burada kesinlikle çalışmaz.


29

HATA: JAVA_HOME geçersiz bir dizine ayarlandı. JAVA_HOME = "E: \ Sun \ SDK \ jdk \ bin" Lütfen ortamınızdaki JAVA_HOME değişkenini Java kurulumunuzun konumu ile eşleşecek şekilde ayarlayın

JAVA_HOMEolarak ayarlanmalıdır E:\Sun\SDK\jdk. PATHiçerecek şekilde ayarlanmalıdır %JAVA_HOME%\bin.


13

Bu sorunla bir Grails kurulumuyla karşılaştım.

Sorun benim java_home oldu c:\sun\jdk\ve benim YOL vardır%JAVA_HOME%bin

Ben şu şekilde değiştirdim: JAVA_HOME= "c:\sun\jdk" and PATH="%JAVA_HOME%\bin"

Bundan sonra çalıştı.


10

Aynı sorunla karşı karşıyaydım ve JAVA_HOME'u güncelledim benim için çalıştı.

daha önce şöyleydi: C: \ Program Files \ Java \ jdk1.6.0_45 \ bin \ bin'i kaldırdım ve benim için çalıştı.


4

Mevcut iş yerimdeki güvenlik kısıtlamaları nedeniyle Windows tabanlı bilgisayarımda ortam değişkenlerini ayarlayamadım.

Çözümüm mvn.bat dosyasını% M2% 'den C: \ WINNT' e kopyalamak ve aşağıdakileri toplu iş dosyasının en üstüne eklemekti:

@REM Needed as unable to set env variables on my desktop PC.

set MAVEN_OPTS=-Xms256m -Xmx1024m
set M2_HOME=C:\apache-maven-3.0.4
set M2=%M2_HOME%\bin
set JAVA_HOME=C:\Program Files\Java\jdk1.5.0_15
set PATH=%JAVA_HOME%\bin;%M2%;%PATH%

En güzel çözüm değil ama işe yarıyor. Standart ortam değişkenlerinin sisteme ayarlanamayacağı başka bir yol veya çalışma yöntemi olan herhangi birinin yanıtını memnuniyetle isterim.


3

Aynı sorunu yaşadım ve yukarıdaki cevaplardan hiçbiri benim için düzeltmedi çünkü env değişkenlerimin tümü ayarlandı. Java'mı yeni yeniden yükledim.

Ne işe yaradı

  1. gidin C:\path\to\apache-maven-3.0.4\binve mvn.batdosyayı açın .
  2. Buna benzeyen çizgiyi bul @SET JAVA_HOME=C:\progra~1\java\jdk1.7.0_03
  3. Doğru yola düzeltin

Bunun Windows'a özgü olup olmadığını bilmiyorum ama birine yardımcı olabilir!


2

Çok sayıda başarısız denemeden sonra çözümü buldum

";" Her zaman belirlediğim her yeni değişkenin sonuna koyduğum JAVA_HOME'un sonunda. Öyleyse; kurtulun.

JAVA_HOME bunu Kullanıcı Değişkeninde de ayarladı (tabii ";" olmadan)


1
"... her zaman belirlediğim her yeni değişkenin sonuna koyduğum" - Bunu neden yaptın?
Stephen C

1

JAVA_HOME veya MAVEN_HOME'u bin dizini olmadan ayarlamanız gerekir, örneğin: - JAVA_HOME = C: \ Program Files (x86) \ Java \ jdk1.7.0_45 - MAVEN_HOME = C: \ Program Files (x86) \ apache-maven-3.1.1 şimdi yol = .....;% MAVEN_HOME% \ bin;% JAVA_HOME% \ bin doğru çalışıyor


1

Bazen Windows'ta yollardaki beyaz boşluklar doğru şekilde tanınmıyor

Yol sorununuz varsa ve yol gibi görünüyorsa

c:\Program Files\....

gibi eski bir DOS formatında değiştirmeyi deneyin

"C:\Progra~1\...

dir /xDoğru söz dizimini kontrol etmek için kullanabilirsiniz (üçüncü sütun)

C:\>dir /x ... 11.01.2008 15:47 <DIR> DOCUME~1 Documents and Settings 01.12.2006 09:10 <DIR> MYPROJ~1 My Projects 21.01.2011 14:08 <DIR> PROGRA~1 Program Files ...

Bilgisayarımda JAVA_HOME (ve çalışıyor)

"C:\Progra~1\Java\jdk1.8.0_121"

Windows 10'da test edildi



0

Bu eski bir gönderi gibi görünüyor ama yine de bu sorunun benim için nasıl çözüldüğünü paylaşmak istedim.

Yönetici erişimine sahip olmayan kullanıcılar için bir komut istemi açtıklarında, kullanıcı ayrıcalığı altında çalışır. Bu, C: \ Kullanıcılar \ gibi bir yolunuz olabileceği anlamına gelir.

bu yüzden C: \ Users \ XYZ> mvn --version denenirken, aslında Ortam Değişkenlerindeki sistem değişkenlerinden değil kullanıcı değişkenlerinden JAVA_HOME yolunu arar.

Yani, bunu düzeltmek için kullanıcı değişkenlerinde JAVA_HOME için bir ortam değişkeni oluşturmamız gerekiyor.

Umarım bu birine yardım eder.


Ermmm ... Kullanıcının ortam değişkenleri, Windows'taki sistem ortam değişkenlerini geçersiz kılar. Aynı ada sahip bir sistem ve kullanıcı ortamı değişkeniniz varsa, kullanıcı değişkeni "kazanır" ve uygulama bunu görür.
Stephen C

0

Tutulmayı çalıştırmak ve ayrıca Maven'i çalıştırmak, biri jdk1.7_x_x_x konumunuzda ve ayrıca jdk1.7_x_x_ \ bin'de olmak üzere iki yol değişkenini depolamanızı gerektirir. Windows kullanıyorsanız, ortam değişkenlerinizin içindeyken aşağıdakileri yapın:

1) JAVA_HOME adında bir KULLANICI değişkeni oluşturun. Bunu JAVA dosyanızın konumuna yönlendirin. Örneğin: "C: \ Program Files \ Java \ jdk1.7.0_51" (tırnak işaretlerini kaldırın)

2) PATH altında, PATH'e% JAVA_HOME% ekleyin. Bu, 1. adımdaki dosya konumunu PATH'nize ekleyecektir. Bu MAVEN için iyidir

3) eclipse kullanıyorsanız, "C: \ Program Files \ Java \ jdk1.7.0_51 \ bin" yoluna sahip olmanız gerekir. Şimdi yolunuzun sonuna% JAVA_HOME% \ bin ekleyin.

4) yolunuz şunun gibi görünmelidir: C: \ Program Files (x86) \ Google \ google_appengine \; C: \ Users \ username \ AppData \ Roaming \ npm;% M2%;% JAVA_HOME%;% JAVA_HOME% \ bin

Notlar:% M2% gibi% 'ler içinde yer alan öğeler atanmış değişkenlerdir. Gereksiz görünüyor ama gerekli. Her şeyin çalıştığını yazarak onaylayabilirsiniz:

java -version
javac -version
mvn -version

Comman komut isteminde yazılan bu üç ifadenin her biri hata vermemelidir.


2. Adım) yanlış ve gereksizdir. Java araç zinciri veya Maven% JAVA_HOME% 'un "PATH" değişkeninde olmasını gerektirmez. (Herhangi bir gerçek zarar vermez, ancak faydası da yoktur.) Referans - tutorialspoint.com/maven/maven_environment_setup.htm
Stephen C

0

Windows 10 kullanma

Bir sorunla karşı karşıyaydım .. sonra JAVA_HOME değişkenini tamamen kaldırdım ve PATH'e% JAVA_HOME% \ bin ekledim sonra çalıştı !!! benim için


1
Teşekkürler. Java_home değişkeninin sonuna "/ bin" ekledikten sonra işe yarar
Rahul

-1

JDK, java.exe'nin konumlarını 1.6 ile 1.7 arasında değiştirdi !!!

Benim durumumda, JDK için JAVA_HOME'un sonuna \ jre eklemesi gerektiğini buldum. Mvn bat dosyası java.exe'yi arar ve JAVA_HOME \ bin içinde arar. JDK 1.7 için orada değil; JAVA_HOME \ jre \ bin içindedir. JDK 1.6'da JAVA_HOME \ bin içindedir.

Umarım bu birine yardımcı olur.


1
Bunun yanlış olduğuna inanıyorum. Java 7 için Resmi Oracle Dokümantasyonuna göre ( docs.oracle.com/javase/7/docs/technotes/tools/windows/… ), bir JDK kurulumunda "java" komutu hem "JAVA_HOME \ bin" hem de " JAVA_HOME \ jre \ bin ". Kurulumunuzda böyle değilse, o zaman birisi / bir şey onu karıştırmıştır!
Stephen C

İlginç. / Bin dizinimde değil, sadece / jre / bin'im. Belki de en son JDK'yı yeniden yüklemem gerekiyor
Brian Reinhold

-1

Durumum biraz farklıydı.

  • JAVA_HOME 1.7'yi gösterecek şekilde uygun şekilde ayarlanmış
  • Diğer Maven projeleri 1.7 özelliklerle çalışıyor / inşa ediyordu.
  • PATH düzgün ayarlanmıştı.
  • Her şey günceldi.

Yine de basit yeni Maven projem çalışmıyordu. Fark ettiğim şey, koştuğumdaki günlüklerdeki farktı mvn clean install. Eski Maven projelerim için gösterdi

[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ oldProject---

Ancak yeni projem için şunu gösterdi:

[INFO] --- maven-compiler-plugin:2.0.2:compile (default-compile) @ newProject ---

Bu yüzden, POM.xmleski projenin POM'undaki şeye baktım ve şunu fark ettim:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
    </plugins>
</build>

Temel olarak bu eklenti, derleme için hangi derleyici sürümünün kullanılacağını söyler. Onu yeni projeye ekledim POM.xmlve işler yolunda gitti.

Umarım birisi için yararlıdır.


Bu, bu soruya geçerli bir cevap değil. Semptomlar farklı. Çözüm farklı.
Stephen C

-1

Windows 7 kullanıyorum, yaşadığım sorun basitti:

Bunu JAVA_HOME ortam değişkeni değerim için aldım:

"C:\Program Files\Java\jdk1.7.0_51;"

istediği zaman:

"C:\Program Files\Java\jdk1.7.0_51"

noktalı virgül yine çarpıyor!

:)

Bu sorunu böyle çözdüm, bu yüzden bu olası bir çözüm olmalı.

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.