[java] IntelliJ Gradle 플러그인 : 제공된 javaHome이 유효하지 않은 것 같습니다.

유사 :
인 IntelliJ (14)는 공급 JAVAHOME은 유효하지 않은 것 같습니다
안드로이드 스튜디오 – 공급 JAVAHOME가 유효한 폴더 아니다

그러나 다음 JAVA_HOME으로 설정된 내 변수 를 사용하려고 합니다.C:\Program Files\Java\jdk1.8.0_40

intellij가 설치 디렉토리 내부에서 JDK를 찾는 이유를 이해하지 못합니다.

intellij에서 :

Executing external task 'bootRun'...
The supplied javaHome seems to be invalid. I cannot find the java executable. Tried location: C:\Program Files (x86)\JetBrains\IntelliJ IDEA 14.1\jre\bin\java.exe
External task execution finished 'bootRun'.

C:\>java -version
java version "1.8.0_40"
Java(TM) SE Runtime Environment (build 1.8.0_40-b25)
Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)

C:>env
...
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_40
...



답변

IDEA는 32 비트와 64 비트의 두 가지 버전으로 제공됩니다.

당신은 JAVA_HOME당신이 IDEA의 64 비트 버전을 실행해야하므로 자바의 64 비트 버전입니다 ...\IntelliJ\IntelliJ IDEA Community Edition 14.1.2\bin\idea64.exe.

그렇지 않으면 32 비트 JDK를 제공하거나 IDEA 설정으로 동작을 조정할 수 있습니다.
https://intellij-support.jetbrains.com/hc/en-us/articles/206544879-Selecting-the-JDK-version-the-IDE-will- 뒤쳐지다


답변

제 경우에는 위의 답변이 작동하지 않았습니다. 저에게 적합한 것은 다음과 같습니다. Gradle JVM을 실제 JDK를 가리 키도록 변경해야했습니다.
IntelliJ 설정 창을 보여주는 이미지


답변

에서 JDK를 수동으로 설정 한 File > Project Structure > Project > Project SDK다음 다시 빌드하십시오.


답변

이는 모듈 설정에서 프로젝트 SDK를 JDK 로 설정하여 수정할 수 있습니다 ( 모듈 SDK ( Android SDK) 와 반대 )


답변

나는 이것을 시도했고 완벽하게 작동했습니다. SETTING-> SEARCH ‘Gradle’—>로 이동하여 Gradle JVM을 선택하고 Use JAVA_HOME C : \ ProgramFiles \ Java \ JDK \ 1.8 옵션을 선택하십시오.


답변

내 JDK에 대한 정확한 경로가있는 build.gradle과 동일한 디렉토리에 gradle.properties 파일을 배치하여이 문제를 해결했습니다.

org.gradle.java.home = C:/Dev/JDK

실제로 올바른 해결책이 아닙니다. 아마도 IDE에서 수정해야합니다. IDEA 로그에서 다음과 같은 내용을 볼 수 있습니다 (이미 가져온 프로젝트의 gradle 작업을 실행할 때).

INFO - s.plugins.gradle.GradleManager - Instructing gradle to use java from C:/Dev/JDK

그러나 프로젝트에 gradle 모듈을 가져올 때 그런 종류의 메시지가 표시되지 않습니다. 아마도 IDEA는 실제로 JDK가 아닌 번들 JRE에 대한 링크를 전달합니다.


답변

문제는 Intellij IDEA 자체에 있습니다. Intellij가 설치된 디렉토리로 이동 하면 위에서 언급 한 java.exe를 검색 하는 jre 디렉토리 를 찾을 수 있습니다. 그러나 여기서 문제는 여기에 bin 디렉토리 가없고 다른 jre 디렉토리를 사용할 수 있다는 것입니다. 내부 jre 디렉토리의 모든 내용을 복사 하여 외부 jre 디렉토리 에 넣습니다 .