Windows에 Maven을 설치할 수 없음 :“JAVA_HOME이 잘못된 디렉토리로 설정되었습니다.”


98

나는 다음 메이븐 튜토리얼 문자로를하지만, 난 여전히 Maven은 윈도우에 설치되지 수 있습니다.

명령 프롬프트에서 다음을 실행할 때 :

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

나는 얻다:

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

maven 설치 폴더로 이동하여 실행 mvn --version하여 다음을 얻었습니다.

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

그러나 내가 달릴 때 나는 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)

그래서 Java가 설치되어 있습니다. 누구 문제가 뭔지 알아?

답변:


172

문제는 경로와 관련이 있습니다.

  1. "E : \ java resources \ apache-maven-2.2.0 \ bin"디렉토리가 명령 검색 경로에 있는지 확인하십시오.

  2. JAVA_HOME 변수가 Java 설치 의 홈 디렉토리 를 참조하는지 확인하십시오 . "E : \ Sun \ SDK \ jdk \ bin"에서 Java를 실행하는 경우 JAVA_HOME 변수는 "E : \ Sun \ SDK \ jdk"를 가리켜 야합니다.

    NB : JAVA_HOME은 "\ bin" 1로 끝나서는 안됩니다 .

  3. JAVA_HOME 변수 2에 세미콜론을 넣지 않았는지 확인하십시오 .

    주의 : JAVA_HOME은 세미콜론으로 구분 된 디렉토리 이름의 "PATH와 유사한"목록이 아닌 단일 디렉토리 이름이어야합니다.

또한 Maven on Windows 지침에서 키 경로 이름의 공백에 대한 이 조언을 무시하면 문제가 발생할 수 있습니다 .

"많은 크로스 플랫폼 도구와 마찬가지로 Maven 은 중요한 경로 이름에 공백 문자가있을 때 문제가 발생할 수 있습니다 ."

"Java SDK를 설치해야합니다 (예 : Oracle의 다운로드 사이트에서) . c : \ j2se1.6과 같이 공백없이 경로 이름에 설치해야 합니다 ." '

"Maven 배포판의 압축을 풀어야합니다. 소스 코드 중간에 압축을 풀지 마십시오. 경로에 공백이없는 위치를 선택 하고 압축을 풉니 다."

이에 대한 간단한 해결책 은 경로에 공백 없도록 Java 또는 Maven을 다른 위치에 다시 설치하는 것 입니다.


1 -.... 설치 위치의 이름에 대해 미친 선택을 하지 않았다면 .

2-Windows 경로 문제에 대한 일반적인 "부두"솔루션은 끝에 세미콜론을 두드리는 것입니다. 일반적으로 권장되지 않으며 여기서는 절대적으로 작동하지 않습니다.


29

오류 : JAVA_HOME이 잘못된 디렉터리로 설정되었습니다. JAVA_HOME = "E : \ Sun \ SDK \ jdk \ bin"Java 설치 위치와 일치하도록 환경에서 JAVA_HOME 변수를 설정하십시오.

JAVA_HOME로 설정해야합니다 E:\Sun\SDK\jdk. PATH포함하도록 설정해야합니다 %JAVA_HOME%\bin.


13

Grails 설치로이 문제가 발생했습니다.

문제는 내 JAVA_HOME 이었고 c:\sun\jdk\PATH%JAVA_HOME%bin

나는 그것을 다음과 같이 변경했다. JAVA_HOME= "c:\sun\jdk" and PATH="%JAVA_HOME%\bin"

그 후에 작동했습니다.


10

나는 같은 문제에 직면하고 있었고 JAVA_HOME이 나를 위해 일했습니다.

이전에는 다음과 같았습니다. C : \ Program Files \ Java \ jdk1.6.0_45 \ bin 방금 \ bin을 제거하면 저에게 효과적이었습니다.


4

현재 직장의 보안 제한으로 인해 Windows 기반 PC에서 환경 변수를 설정할 수 없었습니다.

내 해결 방법은 mvn.bat 파일을 % M2 %에서 C : \ WINNT로 복사하고 다음을 배치 파일의 맨 위에 추가하는 것입니다.

@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%

가장 좋은 해결책은 아니지만 작동합니다. 누구든지 표준 환경 변수를 시스템에 설정할 수없는 다른 방법이나 해결 방법이 있다면 응답을 환영합니다.


3

나는 같은 문제가 있었고 위의 답변 중 어느 것도 내 환경 변수가 모두 설정 되었기 때문에 나를 위해 수정하지 않았습니다. 방금 Java를 다시 설치했습니다.

효과가 있었던 것은

  1. 로 이동 C:\path\to\apache-maven-3.0.4\bin하여 mvn.bat파일을 엽니 다 .
  2. 다음과 같은 줄을 찾으십시오. @SET JAVA_HOME=C:\progra~1\java\jdk1.7.0_03
  3. 올바른 경로로 수정

이것이 Windows와 관련된 것인지는 모르겠지만 누군가에게 도움이 될 수 있습니다!


2

많은 시도가 실패한 후 해결책을 찾았습니다.

";" JAVA_HOME의 끝에는 항상 설정 한 각 새 변수의 끝에 넣습니다. 그래서 제거;.

JAVA_HOME은 사용자 변수에서도 설정합니다 ( ";"제외).


1
"... 내가 설정 한 각각의 새 변수 끝에 항상 넣습니다." -왜 그렇게 하시겠습니까?
Stephen C

1

bin 디렉토리없이 JAVA_HOME 또는 MAVEN_HOME을 설정해야합니다. 예 :-JAVA_HOME = C : \ Program Files (x86) \ Java \ jdk1.7.0_45-MAVEN_HOME = C : \ Program Files (x86) \ apache-maven-3.1.1 now path = .....; % MAVEN_HOME % \ bin; % JAVA_HOME % \ bin 올바르게 작동합니다.


1

때때로 Windows에서 경로의 공백이 올바르게 인식되지 않습니다.

경로 문제가 있고 경로가

c:\Program Files\....

이전 DOS 형식으로 변경해보십시오.

"C:\Progra~1\...

dir /x올바른 구문을 확인 하는 데 사용할 수 있습니다 (세 번째 열).

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 ...

내 PC에서 JAVA_HOME은 (그리고 작동합니다)

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

Windows 10에서 테스트 됨


0

JAVA_HOME은 다음과 같아야합니다. C : \ PROGRA ~ 1 \ Java \ jdk

이것이 효과가 있기를 바랍니다!


0

이것은 오래된 게시물처럼 보이지만 여전히이 문제가 어떻게 해결되었는지 공유하고 싶습니다.

관리자 액세스 권한이없는 사용자의 경우 명령 프롬프트를 열면 사용자 권한으로 실행됩니다. 즉, C : \ Users \와 같은 경로가있을 수 있습니다.

따라서 C : \ Users \ XYZ> mvn --version을 시도 할 때 실제로 환경 변수의 시스템 변수가 아닌 사용자 변수에서 JAVA_HOME 경로를 검색합니다.

따라서이를 수정하기 위해서는 사용자 변수에 JAVA_HOME에 대한 환경 변수를 생성해야합니다.

희망, 이것은 누군가를 돕습니다.


Ermmm ... 사용자의 환경 변수는 Windows의 시스템 환경 변수보다 우선합니다. 이름이 같은 시스템 및 사용자 환경 변수가있는 경우 사용자 변수가 "승리"하고 응용 프로그램에 표시됩니다.
Stephen C

0

eclipse를 실행하고 Maven을 실행하려면 jdk1.7_x_x_x 위치와 jdk1.7_x_x_ \ bin에 하나씩 두 개의 경로 변수를 저장해야합니다. Windows를 사용하는 경우 환경 변수에있을 때 다음을 수행하십시오.

1) JAVA_HOME이라는 USER 변수를 만듭니다. JAVA 파일의 위치를 ​​가리 킵니다. 예 : "C : \ Program Files \ Java \ jdk1.7.0_51"(따옴표 제거)

2) PATH 아래에서 % JAVA_HOME %를 PATH에 추가합니다. 그러면 1 단계의 파일 위치가 PATH에 추가됩니다. 이것은 MAVEN에게 좋습니다.

3) eclipse를 사용하는 경우 경로가 "C : \ Program Files \ Java \ jdk1.7.0_51 \ bin"을 가리켜 야합니다. 이제 경로 끝에 % JAVA_HOME % \ bin을 추가하십시오.

4) 경로는 다음과 같습니다. C : \ Program Files (x86) \ Google \ google_appengine \; C : \ Users \ username \ AppData \ Roaming \ npm; % M2 %; % JAVA_HOME %; % JAVA_HOME % \ bin

참고 : % M2 %와 같이 %로 묶인 항목은 할당 된 변수입니다. 중복되어 보이지만 필요합니다. 다음을 입력하여 모든 것이 작동하는지 확인할 수 있습니다.

java -version
javac -version
mvn -version

comman 프롬프트에 입력 된 세 개의 문 각각은 오류를 반환하지 않아야합니다.


2 단계)는 부정확하고 불필요합니다. Java 도구 모음이나 Maven 모두 "PATH"변수에 % JAVA_HOME %이 있어야하는 것은 아닙니다. (그것은 어떤하지 않을 것이다 실제 두 해를,하지만 좋은하지 않습니다.) 참조 - tutorialspoint.com/maven/maven_environment_setup.htm
스티븐 C

0

Windows 10 사용

나는 문제에 직면했다 .. 그런 다음 JAVA_HOME 변수를 완전히 제거 하고 PATH 에 % JAVA_HOME % \ bin추가 하면 작동했습니다! 나를 위해


1
감사합니다. Java_home 변수 끝에 "/ bin"을 추가 한 후 작동합니다.
Rahul

-1

JDK는 1.6과 1.7 사이에서 java.exe의 위치를 ​​전환했습니다 !!!

제 경우에는 JDK 용 JAVA_HOME이 끝에 \ jre를 추가해야한다는 것을 알았습니다. mvn bat 파일은 java.exe를 찾고 있으며 JAVA_HOME \ bin에서 찾습니다. JDK 1.7에는 없습니다. JAVA_HOME \ jre \ bin에 있습니다. JDK 1.6에서는 JAVA_HOME \ bin에 있습니다.

이것이 누군가를 돕기를 바랍니다.


1
나는 이것이 틀렸다고 생각합니다. Java 7 용 공식 Oracle 설명서 ( docs.oracle.com/javase/7/docs/technotes/tools/windows/… ) 에 따르면 JDK 설치에서 "java"명령은 "JAVA_HOME \ bin"및 " JAVA_HOME \ jre \ bin "입니다. 이것이 설치에서 그렇지 않다면 누군가 / 무언가가 엉망이 된 것입니다!
Stephen C

흥미 롭군. 내 / bin 디렉토리가 아니라 내 / jre / bin뿐입니다. 최신 JDK를 다시 설치해야 할 수도 있습니다
Brian Reinhold

-1

제 상황은 조금 달랐습니다.

  • JAVA_HOME 1.7을 가리 키도록 올바르게 설정되었습니다.
  • 다른 Maven 프로젝트는 1.7 기능으로 잘 작동 / 구축되었습니다.
  • PATH 제대로 설정되었습니다.
  • 모든 것이 최신 상태였습니다.

여전히 내 간단한 새 Maven 프로젝트가 작동하지 않았습니다. 내가 알아 차린 것은 내가 달릴 때 로그의 차이였다 mvn clean install. 이전 Maven 프로젝트의 경우

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

그러나 내 새 프로젝트의 경우 다음과 같이 표시되었습니다.

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

그래서 저는 POM.xml이전 프로젝트의 POM에서 이것을보고 이것을 발견했습니다.

<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>

기본적으로이 플러그인은 컴파일에 사용할 컴파일러 버전을 알려줍니다. 방금 새 프로젝트에 추가 POM.xml했고 모든 것이 작동했습니다.

누군가에게 유용하기를 바랍니다.


이 질문에 대한 올바른 대답이 아닙니다. 증상이 다릅니다. 해결책은 다릅니다.
Stephen C

-1

Windows 7을 사용하고 있습니다. 문제는 간단했습니다.

내 JAVA_HOME 환경 변수 값에 대해 다음을 수행했습니다.

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

원할 때 :

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

세미콜론이 다시 공격합니다!

:)

이것이 제가이 문제를 해결 한 방법이므로 가능한 한 가지 해결책이 될 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.