Articles

Konfigurieren Sie die Pfadvariable in Powershell

Szenario: Aus irgendeinem Grund müssen Sie auf einem Windows-Computer entwickeln und sind kein Administrator. Ihr Unternehmen erzwingt auf allen Computern dieselbe alte Java-Version, Sie möchten jedoch eine neuere ausprobieren.
Nachdem Sie eine JDK-Binärdistribution in einen Ordner Ihrer Wahl heruntergeladen haben, ist es wirklich einfach, Ihre IDE so einzurichten, dass Sie damit arbeitet, aber was ist, wenn Sie Java von Powershell aus ausführen möchten?
Normalerweise wird Ihr Computer mit einer Systempfadvariablen eingerichtet, die auf die alte Java-Version verweist und die nicht geändert werden kann. Sie versuchen, den Pfad in Ihren Benutzervariablen zu ändern, indem Sie den Speicherort zu Ihrem brandneu heruntergeladenen JDK hinzufügen. Hurra richtig?

Gut… nein 😥

Es stellt sich heraus, dass Benutzerpfade auf Systempfade verschoben werden, und wenn Sie nach einer ausführbaren Datei suchen, wählt Windows die erste Übereinstimmung aus.

Zum Glück für uns stellt sich heraus, dass es einen Workaround dafür gibt! Ähnlich wie bash mit seiner .bashrc -Datei unterstützt Powershell Init-Skripte.
Um ein Init-Skript zu erstellen, führen Sie diesen Befehl in Powershell aus:

New-Item $profile -Type File -Force

Gehen Sie zu Ihrem Ordner Dokumente, Sie finden einen neuen WindowsPowerShell Unterordner, der ein Powershell-Skript mit dem Namen Microsoft.PowerShell_profile.ps1 enthält. Bearbeiten Sie diese Datei und fügen Sie eine Zeile wie diese hinzu:

 $Env:Path="C:\Users\my-user-name\apps\my-jdk-folder\bin;"+$Env:Path

Speichern und öffnen Sie eine neue Powershell-Instanz: Das Skript wird automatisch ausgeführt, wenn eine neue Shell-Instanz erstellt wird. Jetzt können Sie die neue Pfadvariable mit dem folgenden Befehl sehen:

echo $env:Path