問題タブ [jenv]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
247 参照

java - 「システム」バージョンがjenvで設定されている場合、MavenはJAVA_HOMEに問題があります

私はMacOS、zshを使用しています。

jenv をインストールし、いくつかの Java バージョンを追加しました。

私は走った

jenv 医師は次のように返します。

[OK] JAVA_HOME 変数はおそらく jenv PROMPT によって設定されます
[OK] パス内の Java バイナリは jenv shims
です [OK] Jenv は正しくロードされます

jenv バージョンの戻り値:

しかし、端末セッションを開始して mvn --version を実行すると、

jenv でシステム以外の Java バージョンを設定すると、次のように正常に動作します。

しかし、jenv のバージョンがシステムの場合、なぜ機能しないのでしょうか。

0 投票する
0 に答える
590 参照

java - IntelliJで使用するためにjenvを介してJAVA_HOMEを設定する無限のトラブル

私は一見一般的な問題を抱えていますが、JAVA_HOMEパスを適切に設定できないという問題を経験している人々の多くの投稿(ここやその他)を精査した後、提案された解決策は私の問題を解決していません.

最近 Java をインストールしましHomebrewた (バージョンは でした) が、特定のプロジェクトで使用Java16するためにインストールする必要がありました。Homewbrew を介して Java8 もインストールし、システムで複数のバージョンの Java を管理するためにインストールも進めました。Java8IntelliJjenv

ではIntelliJ > Project Structure、目的の SDK を指定して Java8 で動作させることができました。ここまではすべて順調でした。

ただし、その後、 をインストールする必要がJava14あり、その時点ですべてがバラバラになりました。

Java8を追加したときと同じ手順を踏んだのですがERROR: JAVA_HOME is set to an invalid directory: /Users/user/.jenv/versions/systemいずれかのSDKを指定するとIntelliJが文句を言うようになりました。具体的には、実行してgradle経由で.jarファイルを構築しようとすると、このエラーがスローされますgradle jar

修正を試みるために私が行ったこと(この順序で明示的にではなく、いくつかのコマンドが複数回実行されました):

jenv enable-plugin export

echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile

echo 'eval "$(jenv init -)"' >> ~/.bash_profile

jenv add $(/usr/libexec/java_home)

jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-14.jdk/Contents/Home/

jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-84.jdk/Contents/Home/

bash_profileこれが機能しなかったとき、変数を継承するために、IntelliJ をターミナルから直接開きました(私が何度か遭遇した提案された解決策)。

さらに、ターミナルでプロジェクトのフォルダーに移動し、jenv java 14フォルダー レベルの仕様を実装するために発行しました。

以下は、参考になる可能性がある特定のターミナル実行の結果です。

javac -version

java -version

which java

ls -1 /Library/Java/JavaVirtualMachines

/usr/libexec/java_home -V

echo ${JAVA_HOME}

jenv version

jenv versions

最初の質問は次のとおりです。echo ${JAVA_HOME}結果はsystemになりますか? ほとんどのチュートリアルと説明は、より明確なもの (例: /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home) になっているようです。

システムが望ましい結果ではない場合、まだ試していない方法で修正するにはどうすればよいですか?

最後の情報として、ここに私.bash_profile自身が持っているものがあります:

非常に疑わしいようですが、それが何を意味するのunset JAVA_HOMEか、どのようにそこに到達したのか、コメントアウトしても問題は解決しません。

助けてくれてありがとう!!