Intellij JAVA_HOME 변수
Gradle과 Intellij를 사용하기 시작했지만 Gradle의 JVM을 구성하는 데 문제가 있습니다. 새 Gradle 프로젝트를 시작할 때 JVM을 JAVA_HOME 변수로 정의 할 수 없습니다. 다음 스크린 샷은 무슨 일이 일어나고 있는지 보여줍니다.
보시다시피 Intellij는 JAVA_HOME 변수가 정의되어 있지 않다고 말하지만 입력하면 echo $JAVA_HOME
Java 디렉토리를 가져올 수 있습니다./Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home
내 ./~bash_profile은 다음과 같이 구성됩니다. export JAVA_HOME=$(/usr/libexec/java_home)
누군가가 무슨 일이 일어나고 있는지 알아낼 수 있습니까? 감사합니다!
문제는 "프로젝트 SDK"가 없음입니다! "새로 만들기 ..."를 클릭하여 "프로젝트 SDK"를 추가하고 JDK의 경로를 선택합니다. 그리고 괜찮을 것입니다.
다소 직관적이지 않지만 먼저 Java 프로젝트 용 SDK를 설정해야합니다. IntelliJ 시작 화면의 오른쪽 하단에서 '구성> 프로젝트 기본값> 프로젝트 구조'를 선택합니다.
왼쪽의 프로젝트 탭에는 선택한 SDK가 없음이 표시됩니다.
따라서 드롭 다운 오른쪽에있는 '새로 만들기 ...'버튼을 클릭하고 JDK를 가리켜 야합니다. 그런 다음 가져 오기 화면으로 돌아갈 수 있으며이 설정이 있으면 JAVA_HOME 변수로 채워 져야합니다.
intellij에서 JAVA_HOME을 인식하게하려면 다음 중 하나를 수행 할 수 있습니다.
- 터미널 / Applications / IntelliJ IDEA 14.app/Contents/MacOS에서 intellij를 시작합니다 (이렇게하면 bash 환경 변수가 선택됩니다).
- 다음을 실행하여 로그인 환경 변수를 추가합니다.
launchctl setenv JAVA_HOME "/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home"
질문에 직접 답하려면 ~ / .bash_profile에 launchctl 줄을 추가 할 수 있습니다.
다른 사람들이 대답했듯이 프로젝트 구조에서 SDK를 설정하여 JAVA_HOME을 무시할 수 있습니다.
제 경우에는 더 낮은 JRE가 필요했기 때문에 IntelliJ에게 "플랫폼 설정"에서 다른 것을 사용하도록 지시해야했습니다.
- 플랫폼 설정> SDK ( ⌘+ ;)
- +버튼을 클릭하여 새 SDK를 추가하거나 기존 SDK의 이름을 바꾸고로드합니다.
- 적절한 SDK
(예 : /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home) 에서 / Contents / Home 디렉토리를 선택합니다.
지금까지 아무도 실제 질문에 답하지 않았습니다.
누군가가 무슨 일이 일어나고 있는지 알아낼 수 있습니까?
여기서 문제 는 귀하 의 가치 $JAVA_HOME
는 정확 하지만 잘못된 위치에 정의 했다는 것 입니다.
- 터미널을 열고 Bash 세션을 시작하면
~/.bash_profile
파일 을 읽습니다 . 따라서를 입력하면echo $JAVA_HOME
거기에 설정된 값이 반환됩니다. - IntelliJ를 직접 실행하면 읽지 않습니다
~/.bash_profile
. 왜해야합니까? 따라서 IntelliJ에서는이 변수가 설정되지 않습니다.
이에 대한 두 가지 가능한 해결책이 있습니다.
- Bash 세션에서 IntelliJ 실행 : 터미널을 열고
"/Applications/IntelliJ IDEA.app/Contents/MacOS/idea"
. 이idea
프로세스는export
편집 된 Bash의 환경 변수를 상속합니다 . (당신이했기 때문에export JAVA_HOME=…
작동합니다!) 또는 정교한 방법 : Bash 세션뿐만 아니라 모든 프로그램에 적용되는 전역 환경 변수를 설정합니다. 이것은 생각보다 복잡 하며 예를 들어 여기 와 여기에 설명되어 있습니다 . 당신이해야 할 일은 실행입니다
/bin/launchctl setenv JAVA_HOME $(/usr/libexec/java_home)
그러나 이것은 재부팅 후에 재설정됩니다. 부팅 할 때마다 실행되도록하려면 다음을 실행하십시오.
cat << EOF > ~/Library/LaunchAgents/setenv.JAVA_HOME.plist <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>setenv.JAVA_HOME</string> <key>ProgramArguments</key> <array> <string>/bin/launchctl</string> <string>setenv</string> <string>JAVA_HOME</string> <string>$(/usr/libexec/java_home)</string> </array> <key>RunAtLoad</key> <true/> <key>ServiceIPC</key> <false/> </dict> </plist> EOF
이것은 터미널 프로세스에도 영향을 미치므로
~/.bash_profile
.
참고 URL : https://stackoverflow.com/questions/30960103/intellij-java-home-variable
'programing' 카테고리의 다른 글
Mac OSX에서 $ GOPATH를 설정할 수 없습니다. (0) | 2020.12.10 |
---|---|
인스턴스 메서드 내에서 형식 메서드 호출 (0) | 2020.12.10 |
Android 애플리케이션 아키텍처-제안 된 모델은 무엇입니까? (0) | 2020.12.09 |
다른 할당자를 사용하는 STL 문자열 비교 (0) | 2020.12.09 |
"Bastard Injection"과 "Poor Man 's Injection"의 실제 차이점은 무엇입니까? (0) | 2020.12.09 |