[英]Intellij JAVA_HOME variable
我開始使用 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)
有人可以弄清楚發生了什么? 謝謝!
有點違反直覺,但您必須首先為 Java 項目設置一個 SDK。 在 IntelliJ 歡迎屏幕的右下角,選擇“配置 > 項目默認值 > 項目結構”。
左側的 Project 選項卡將顯示您沒有選擇 SDK:
因此,您必須單擊下拉菜單右側的“新建...”按鈕並將其指向您的 JDK。 之后,您可以返回到導入屏幕,它應該填充您的 JAVA_HOME 變量,前提是您有這個設置。
問題是你的“項目 SDK”沒有! 通過單擊“新建...”添加“項目 SDK”並選擇 JDK 的路徑。 然后應該就OK了。
到目前為止,沒有人回答實際問題。
有人可以弄清楚發生了什么?
這里的問題是,雖然您的$JAVA_HOME
的值是正確的,但您在錯誤的地方定義了它。
~/.bash_profile
文件。 因此,當您輸入echo $JAVA_HOME
,它將返回已在那里設置的值。~/.bash_profile
......為什么要呢? 所以對於 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
放置任何內容。
如果您想讓 intellij 識別您的 JAVA_HOME,您可以執行以下操作之一:
launchctl setenv JAVA_HOME "/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home"
要直接回答您的問題,您可以在 ~/.bash_profile 中添加 launchctl 行
正如其他人所回答的那樣,您可以通過在項目結構中設置 SDK 來忽略 JAVA_HOME。
在我的情況下,我需要一個較低的 JRE,所以我不得不告訴 IntelliJ 在“平台設置”中使用不同的
在我的情況下,幫助卸載了 Android 插件 - Idea 一直困擾我設置 Android NDK 並且不讓我更改 Java 默認 SDK - 由於我不為 Android 開發,我可以將其刪除。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.