当电脑上安装有多个版本的 Java 时,要切换它们通常很麻烦,而 PowerShell 中的别名功能就可以很方便的直接调用它们。
别名
PowerShell 中的别名(Alias)允许用户为常用的命令设置便于记忆的名称,如 PowerShell 中的 ls
命令实际上是 Get-ChildItem
的别名。您可以使用 Get-Alias
或 gal
(即前者的别名)来获取可用的别名列表。
1 2 3 4 5 6 7
| PS C:\Windows\system32> Get-Alias ls
CommandType Name Version Source ----------- ---- ------- ------ Alias ls -> Get-ChildItem
|
您还可以使用 Set-Alias
或 sal
来设置别名。
1 2 3 4 5 6 7 8 9
| PS C:\Users\Admin> Set-Alias java11 "C:\Program Files\Java\jdk-11.0.12\bin\java.exe" PS C:\Users\Admin> java11 -version java version "11.0.12" 2021-07-20 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.12+8-LTS-237) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.12+8-LTS-237, mixed mode) PS C:\Users\Admin> java -version java version "17.0.1" 2021-10-19 LTS Java(TM) SE Runtime Environment (build 17.0.1+12-LTS-39) Java HotSpot(TM) 64-Bit Server VM (build 17.0.1+12-LTS-39, mixed mode, sharing)
|
然而,在退出 PowerShell 之后,此前设置的别名也会失效。我们可以通过用户配置文件解决这个问题。
用户配置文件
在 PowerShell 中使用 $profile
来获取用户配置文件位置。
1 2
| PS C:\Users\Admin> $profile C:\Users\Admin\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
|
如果该文件不存在,可以通过 New-Item
来进行创建。
1 2 3 4 5 6 7 8 9 10 11 12 13
| PS C:\Users\Admin> Test-Path $profile False PS C:\Users\Admin> New-Item $profile
目录: C:\Users\Admin\Documents\WindowsPowerShell
Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 2021/12/25 10:13 0 Microsoft.PowerShell_profile.ps1
|
使用任意文本编辑器打开该文件,这里使用的是 Visual Studio Code。
1
| PS C:\Users\Admin> code $profile
|
在个人配置文件中,就可以设置好自己所需的别名,方便自己使用了。
1 2 3 4 5 6 7 8 9
|
Set-Alias java8 "C:\Program Files\Java\jdk1.8.0_301\bin\java.exe" Set-Alias javaw8 "C:\Program Files\Java\jdk1.8.0_301\bin\javaw.exe" Set-Alias javac8 "C:\Program Files\Java\jdk1.8.0_301\bin\javac.exe"
Set-Alias java11 "C:\Program Files\Java\jdk-11.0.12\bin\java.exe" Set-Alias javaw11 "C:\Program Files\Java\jdk-11.0.12\bin\javaw.exe" Set-Alias javac11 "C:\Program Files\Java\jdk-11.0.12\bin\javac.exe"
|