我的公司使用的程序在更新Java时会中断。这是由于程序安装(我假设)在Path环境变量中放置了指向Java的静态路径。例如,当前有问题的Path变量是C:\Program Files (x86)\Java\jre1.8.0_171\bin\client
,但是如果更新了Java并重新安装了程序,则Path变量将更新为包括C:\Program Files (x86)\Java\jre1.8.0_181\bin\client
。
我可以在https://blogs.technet.microsoft.com/heyscriptingguy/2007/11/08/hey-scripting-guy-how-can-i-remove-a-value-from-the-path-environment-variable/上找到我需要的(我认为),但是该代码适用于Powershell 2.0,在Windows 10上不起作用。
在Windows 10中这仍然可行吗?
答案 0 :(得分:1)
您可以使用System.Environment
类在机器范围内修改环境变量:
# get the PATH and split it up
$PATH = [Environment]::GetEnvironmentVariable('PATH', 'Machine') -split ';'
# filter out the JRE paths
$PATH = $PATH -notmatch 'java\\jre'
# get any real JRE paths
$PATH += (Get-Item -Path "${Env:ProgramFiles(x86)}\Java\jre*\bin\client").FullName
$PATH = $PATH -join ';'
[Environment]::SetEnvironmentVariable('PATH', $PATH, 'Machine')
注意:您将需要运行提升的Shell才能执行这些命令。
答案 1 :(得分:0)
Java并不是Windows的问题,因此TechNet不会为您提供帮助。下面有一个修复程序。
Windows 10和Windows 8:
打开 Legacy 控制面板
单击高级系统设置链接。
点击环境变量。在系统变量部分中,找到 PATH 环境变量并选择它。
单击编辑。
如果PATH环境变量不存在,请单击 New 。
在编辑系统变量(或新系统变量)窗口中,指定PATH环境变量的值。
单击确定。
通过单击确定关闭所有剩余的窗口。
重新打开PowerShell窗口,然后运行Java代码。