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変数を設定する必要があります(このセットがあれば)。
Java_HOMEをintellijに認識させたい場合は、次のいずれかを実行できます。
launchctl setenv Java_HOME "/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home"
質問に直接回答するには、〜/ .bash_profileにlaunchctl行を追加します。
他の人が答えたように、プロジェクト構造でSDKを設定することでJava_HOMEを無視できます。
私の場合、より低いJREが必要だったため、IntelliJに「プラットフォーム設定」で別のJREを使用するように指示する必要がありました。
これまでのところ、実際の質問には誰も回答していません。
誰かが何が起こっているのか理解できますか?
ここでの問題は、$Java_HOME
正しい のvalueながら、それを定義した間違った場所に。
~/.bash_profile
ファイルが読み取られます。したがって、echo $Java_HOME
と入力すると、そこに設定されている値が返されます。~/.bash_profile
を読み取ります...なぜそうする必要があるのですか?したがって、IntelliJには、この変数は設定されていません。これには2つの解決策があります。
"/Applications/IntelliJ IDEA.app/Contents/MacOS/idea"
を実行します。 idea
プロセスは、export
edされたBashの環境変数を継承します。 (export Java_HOME=…
を実行したので、動作します!)、または洗練された方法:Bashセッションだけでなく、すべてのプログラムに適用されるグローバル環境変数を設定します。これは思っているよりも複雑で、たとえば here および here で説明されています。あなたがすべきことは実行です
/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
に何かを入れる必要はありません。