programing

Intellij JAVA_HOME 변수

nasanasas 2020. 12. 10. 20:28
반응형

Intellij JAVA_HOME 변수


Gradle과 Intellij를 사용하기 시작했지만 Gradle의 JVM을 구성하는 데 문제가 있습니다. 새 Gradle 프로젝트를 시작할 때 JVM을 JAVA_HOME 변수로 정의 할 수 없습니다. 다음 스크린 샷은 무슨 일이 일어나고 있는지 보여줍니다.

새로운 Gradle 프로젝트

보시다시피 Intellij는 JAVA_HOME 변수가 정의되어 있지 않다고 말하지만 입력하면 echo $JAVA_HOMEJava 디렉토리를 가져올 수 있습니다./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

반응형