3

Mavenをインストールしていますが、M2とM2_Homeを設定する必要があります。それらを環境変数のユーザー変数に設定しました。;%M2%そして、環境変数のシステム変数のパス変数に追加しました。走れるとmvn --version思っていたのですが、走れませんでした。ただし 、そうすると、パスにあるecho %Path%ことがわかります。また、mvnが含まれているbinディレクトリを確認できます。%M2%echo %M2%

だから私はこの問題を抱えていました。%M2%ユーザー変数にPath変数を作成し、それに追加する(そして、システム変数のパスから削除する)まで、問題は解決しませんでした。今では動作します。なぜそれがこの特定の方法でしか機能しないのか誰かが知っていますか?

4

1 に答える 1

3

何が起こっているのかを確認するには、Windowsのソースコードを確認する必要がありますが、これは私を驚かせません。私のテストによると、システム環境変数は他のシステム環境変数のみを参照でき、ユーザー環境変数は参照できないようです。

echo %PATH%展開されたパスが表示されることに注意してください。表示されるべきではありません%M2%

これは、ユーザーコンテキストがない状況で、システム環境変数を拡張する必要がある場合があるためと考えられます。ユーザー環境変数がシステム環境変数の展開に含まれている場合、これは特殊なケースとして扱う必要があります。また、ユーザーの環境変数がシステム変数の解釈に予期せず影響を与えないようにするため、または環境変数がプロセス間で継承される方法に関連する問題があるために、これが好ましい動作と見なされた可能性もあります。

%M2%行ったようにユーザーパスに追加するかM2、ユーザー環境変数ではなくシステムを作成します。

于 2012-11-01T20:01:57.487 に答える