web-dev-qa-db-ja.com

Windows 7環境変数がパスで機能しない

環境変数を使用していくつかのパスを設定しようとしています。環境変数「MAVEN_HOME」に値「C:\ maven」を追加しました。次に、パスに「%MAVEN_HOME%\ bin; ... rest」を追加しました。 「echo $ MAVEN_HOME%」と入力すると、画面に正しい「C:\ maven」が印刷されます。しかし、「bin」ディレクトリにあるバッチファイルである「mvn」と入力しても、見つかりません。

そのため、PATHにパス全体を手動で追加しました。 「C:\ maven\bin; ... rest」と「mvn」を見つけて実行することができました。

誰かが私が間違ったことを助けてくれますか?

42
jiminssy

私はまったく同じ問題を抱えていました。それを解決するには、次の2つのいずれかを実行できます。

  • すべての変数をユーザーではなくシステム変数に入れて、必要な変数をPATHに追加します

または

  • すべての変数をユーザー変数に入れ、システムではなくユーザー変数でPATH変数を作成または編集します。システムのパス変数は、ユーザー変数を展開しません。

上記はすべて正しいが、問題がまだ存在する場合は、HKEY_CURRENT_USER\Environmentのシステムレジストリをチェックして、「PATH」キータイプがREG_EXPAND_SZ(REG_SZではない)であることを確認する必要があります。

53
pcmind

前のパスと次のパスの間にスペース文字があるかどうかを確認します。

間違った:c:\path1; c:\Maven\bin\; c:\path2\

正解:c:\path1;c:\Maven\bin\;c:\path2\

74
Daniel Bonetti

私の問題は恥ずかしいほど単純であることが判明しました。

コマンドプロンプトを再起動すると、新しい変数が更新されます

36
kaybee99

%PATH%やパス内のアイテム間のスペースのようなものは、それを壊します。注意してください

はい、スペースを含むWindowsパスはエラーの原因になります。たとえば、アプリケーションはこれをシステムの%PATH%変数定義の先頭に追加しました。

C:\Program Files (x86)\WebEx\Productivity Tools;C:\Sybase\IQ-16_0\Bin64;

これにより、%PATH%のすべてのパスがcmdウィンドウで設定されなくなりました。

私の解決策は、拡張パス変数を必要に応じて二重引用符で囲むことです:

"C:\Program Files (x86)\WebEx\Productivity Tools";C:\Sybase\IQ-16_0\Bin64;

したがって、スペースは無視され、フルパス変数は適切に解析されます。

15
wmchrog

%M2%および%Java_HOME%は、SYSTEM変数ではなく、USER変数のPATH変数に追加する必要があります。

5
GordyII

また、コマンドプロンプトを管理者として使用していることを確認する価値があります-私の作業マシンのシステムロックは、mvn --versionと入力したときにmvnを報告したばかりの標準cmdが見つからないことを意味しました

使用するには、[スタート]> [すべてのプログラム]> [アクセサリ]をクリックし、[コマンドプロンプト]を右クリックして[管理者として実行]を選択します。

5
Daniel Freeman

PATHウィンドウにまったくエラーがある場合、静かにそれを無視します。パス内の%PATH%やアイテム間のスペースのようなものは、それを壊します。警告される

5
Richard

ユーザーのPATH変数が環境のPATH変数に連結された後、PATH値が長すぎる場合、WindowsはユーザーPATH変数の連結に暗黙的に失敗します。

これは、新しいソフトウェアがインストールされ、PATHに何かが追加された後、簡単に発生し、既存のインストール済みソフトウェアが破損します。 Windowsが失敗します!

最善の解決策は、コントロールパネルでPATH変数の1つを編集し、不要なエントリを削除することです。次に、新しいCMDウィンドウを開き、すべてのエントリが「echo%PATH%」に表示されるかどうかを確認します。

3
Anthony Hayward

Windows 10でこの問題が発生しましたが、タスクマネージャーで「Explorer.exe」を閉じた後、解決したようです。

2
xjdeng

この問題に対処するために、ユーザーレベルの変数を設定しようとするsetxコマンドを使用しました。

私は以下を使用しました...

setx Java_HOME "C:\Program Files\Java\jdk1.8.0_92"

setx PATH %Java_HOME%\bin

注:Windowsは、提供された変数値を既存の変数値に追加しようとします。したがって、余分な%PATH%を指定する必要はありません...%Java_HOME%\ bin; %PATH%のようなもの

1

私は同じ問題を抱えていたので、ユーザー変数からPATHEXTを削除して修正しました。 .COM; .EXE; .BAT; .CMD; .VBS; .VBE; .JS; .JSE; .WSF; .WSH; .MSCを持つシステム変数にのみ存在する必要があります

また、ユーザーからシステムへの変数を削除し、ユーザー変数にそのパスのみを含めます

1

私のWindows 7では。

// not working for me
D:\php\php-7.2.6-nts\php.exe

// works fine
D:\php\php-7.2.6-nts
1
qskane

パスの値をメモ帳にコピーし、これがターミナルウィンドウのエコー%path%と一致するかどうかを確認し、必要に応じて変更を加えます。次に、古いパス値を削除し、メモ帳の値を貼り付けます。一部のインストールによってそこに入力された不可視文字がパス値を破損したと思います。

0
kees

システムとユーザーの両方のパスが正しく設定されていることを確認してください。

0
Nikolay Frick