首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >了解Powershell中windows机器中安装了什么java版本

了解Powershell中windows机器中安装了什么java版本
EN

Stack Overflow用户
提问于 2017-10-13 06:55:04
回答 4查看 3.6K关注 0票数 2

我想找出安装在我的机器上的不同的java版本,并在需要的情况下卸载几个版本nos。

因此,我尝试了以下两个命令:

代码语言:javascript
复制
PS C:\Users\bhatsubh> java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

PS C:\Users\bhatsubh> Get-CimInstance -ClassName Win32_Product | Where-Object { $_.Vendor -match 'Oracle' -and $_.Name -match 'Java'}

代码语言:javascript
复制
Name             Caption                   Vendor                    Version                   IdentifyingNumber
----             -------                   ------                    -------                   -----------------
Java 8 Update... Java 8 Update 131         Oracle Corporation        8.0.1310.11               {26A24AE4-039D-4CA4-8...
Java 8 Update... Java 8 Update 131 (64-... Oracle Corporation        8.0.1310.11               {26A24AE4-039D-4CA4-8...
Java SE Devel... Java SE Development Ki... Oracle Corporation        8.0.1210.13               {64A3A4F4-B792-11D6-A...
Java Auto Upd... Java Auto Updater         Oracle Corporation        2.8.131.11                {4A03706F-666A-4037-7...

现在,为什么命令返回的版本是no:-version命令中没有列出这个版本。

有人能帮我吗?这让我很困惑。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-10-13 07:38:04

您需要知道Java开发工具包(JDK)和Java运行时环境(JRE)不是一回事。

甲骨文在他们的网站上说:

Java是使用编程语言构建应用程序和组件的开发环境。 如果您想运行Java程序,但不想开发它们,请下载或JRE™。

所以,正如你所看到的,你拥有:

  • JRE v8.0.1310.11,
  • JRE (x64) v8.0.1310.11,
  • JDKv8.0.1210.13。

和Java自动更新程序。

代码语言:javascript
复制
java -version

依赖于JRE,因此它返回Java运行时环境版本。

Build 1.8.0_131-b11和8.0.1310.11是相同的版本。

票数 1
EN

Stack Overflow用户

发布于 2017-10-13 07:10:39

有关在Java中安装哪个版本的信息通常可以在Windows注册表中找到-而Powershell最有可能是读取注册表信息。您能做的最好的事情是使用regedit.exe检查以下键:

代码语言:javascript
复制
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit

HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment

HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\JDK - (Java 9 only)

HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\JRE - (Java 9 only)

在这些键下面,您将看到与已安装的和Java环境相对应的文件夹。

带有版本的子键包含一个键JavaHome,其中包含安装相应版本的目录。

下面是一个例子,说明它应该是什么样子:

您可以使用Windows Powershell读取注册表项,如下所示:

代码语言:javascript
复制
Set-Location -Path "hklm:\SOFTWARE\JavaSoft\Java Development Kit\"
Get-ItemProperty -Path .
票数 0
EN

Stack Overflow用户

发布于 2017-10-13 07:22:20

您的powershell输出被截断,请粘贴整个文本。如果您没有足够大的监视器来适应文本,则通过> java_out.txt重定向它

使用java -version,您应该可以在shell中看到JAVA_HOME中包含的内容,例如C:\Program Files\Java\jdk1.8.0_92

powershell通过注册表查询计算机上找到的所有实例。两件不同的事。如果您无法在输出端找到您的Java,这意味着powershell无法通过查询在注册表中找到它。

我的产出:

代码语言:javascript
复制
my env:  
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_92
PS C:\Users\xxx> java -version
java version "1.8.0_92"

PS C:\Users\xxx> Get-CimInstance -ClassName Win32_Product | Where-Object { $_.Vendor -match 'Oracle' -and $_.Name -match 'Java' }

Name             Caption                                     Vendor                                      Version                                     IdentifyingNumber
----             -------                                     ------                                      -------                                     -----------------
Java Configur... Java Configuration Set 1.0 EN               Oracle                                      1.0                                         {34E43632-93E0-411C-BC2F-BB6F7A86307F}
Java(TM) 6 Up... Java(TM) 6 Update 45                        Oracle                                      6.0.450                                     {26A24AE4-039D-4CA4-87B4-2F83216045FF}
Java 7 Update 40 Java 7 Update 40                            Oracle                                      7.0.400                                     {26A24AE4-039D-4CA4-87B4-2F83217040FF}
Java(TM) 6 Up... Java(TM) 6 Update 45 (64-bit)               Oracle                                      6.0.450                                     {26A24AE4-039D-4CA4-87B4-2F86416045FF}
Java 8 Update... Java 8 Update 92 (64-bit)                   Oracle Corporation                          8.0.920.14                                  {26A24AE4-039D-4CA4-87B4-2F86418092F0}
Java SE Devel... Java SE Development Kit 8 Update 92 (64-... Oracle Corporation                          8.0.920.14                                  {64A3A4F4-B792-11D6-A78A-00B0D0180920}
Java Auto Upd... Java Auto Updater                           Oracle Corporation                          2.8.92.14                                   {4A03706F-666A-4037-7777-5F2748764D10}

注意IdentifyingNumber列(Java Configuration Set 1.0 EN)。这是您将在注册表中找到它的键。

例如,您将在注册表中找到键:34E43632-93E0-411C-BC2F-BB6F7A86307F中的以下信息:

这就是powershell所看到的。如果您的JAVA_HOME java没有正确的注册表条目,您将不会在powershell输出中看到它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46724140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档