2024年12月8日 星期日

如何在 windows 上讓 MYSYS2 終端讀到環境變數

1. 修改啟動執行檔

修改C:\msys64\home\USER下的.bash_profile

或在打開 MYSYS2 終端時,使用 nano ~/.bash_profile 來修改,~代表當前目錄

2. 增加環境變數

在最後一行加上
export PATH=$PATH:/c/Windows/System32:/c/Windows:/c/Windows/System32/Wbem

將一些重要的 Windows 系統路徑加入到 MSYS2 的 PATH 環境變數中。

如果有一些額外自己新增到windwos的環境變數中的值,要另外export,例如:

export JAVA_HOME="/c/Program Files (x86)/Eclipse Adoptium/jdk-17.0.9.9-hotspot"

export ANDROID_HOME=/d/sw/dev/android/sdk

export MY_ANDROID_PATH=/d/sw/dev/android/sdk/platform-tools:/d/sw/dev/android/sdk/cmdline-tools/latest/bin:/d/sw/dev/android/sdk/ndk/25.1.8937393

export MY_CMAKE_PATH=/c/Qt/Tools/CMake_64/bin

export MY_MINGW_PATH=/c/Qt/Tools/mingw1120_64/bin

export MY_NINJA_PATH=/c/Qt/Tools/Ninja

export PATH=$ANDROID_HOME:$MY_ANDROID_PATH:$MY_CMAKE_PATH:$MY_MINGW_PATH:$MY_NINJA_PATH:$JAVA_HOME/bin:$PATH

執行 source ~/.bash_profile ,使更改立即生效

在 MSYS2 中檢查所有讀取到的環境變數:

在MYSYS2 終端執行 printenv

設定完之後還是出現 xxx command not found?

在 MSYS2 中使用環境變數來設置 JAVA_HOME 時,遇到 java: command not found 的問題,通常與路徑的格式或設定方式有關。這是因為 MSYS2 和 Windows 在處理路徑的方式有所不同,特別是當路徑中包含空格時。

例如在你提供的 JAVA_HOME 路徑中,使用的是 Windows 的格式(C:\Program Files (x86)\...)。但是,MSYS2 預期的是類 Unix 的路徑格式。這意味著,Windows 的路徑應該轉換成 MSYS2 支援的路徑格式,例如 /c/Program Files (x86)/...。

修正方法:

如果你的路徑中有空格,應該使用引號包裹起來,將路徑中的 Program Files (x86) 和其他部分的格式改為 MSYS2 可理解的格式。例如:

export JAVA_HOME="/c/Program Files (x86)/Eclipse Adoptium/jdk-17.0.9.9-hotspot"


沒有留言:

張貼留言