如何通过Python判断系统是否安装Java?

6 投票
3 回答
7183 浏览
提问于 2025-04-15 13:52

我想用Python来检查一下电脑上是否安装了Java。

3 个回答

1

检查Java是否安装,可以使用shutil.which

import shutil
if shutil.which("java"):
  print("Java is installed on the system")

# Out:
# /usr/bin/java

获取真实路径,并解决符号链接问题,可以使用os.path.realpath

os.path.realpath(shutil.which("java"))

# Out:
# /usr/lib/jvm/java-11-openjdk-amd64/bin/java

检查安装的Java版本,可以使用subprocess.check_output

from subprocess import check_output, STDOUT

try:
  print(check_output("java -version", stderr=STDOUT, shell=True).decode('utf-8'))
except OSError:
  print("java not found on path")

# Out:
# openjdk version "11.0.16" 2022-07-19
# OpenJDK Runtime Environment (build 11.0.16+8-post-Ubuntu-0ubuntu118.04)
# OpenJDK 64-Bit Server VM (build 11.0.16+8-post-Ubuntu-0ubuntu118.04, mixed mode, sharing)

注意这里的stderr=STDOUT(相当于2>&1)。这是因为命令java -version的输出会发送到错误输出(STDERR)中(可以查看为什么'java -version'会输出到stderr?)。

7

虽然没有百分之百可靠的方法来确认这一点,但以下步骤可以帮助你确认Java是否已经正确安装和配置(在Linux系统上):

  1. 首先,检查一下“JAVA_HOME”这个环境变量是否已经设置,并且它指向一个包含“bin”文件夹的目录,而这个“bin”文件夹里要有一个可以执行的“java”命令。
  2. 接着,检查一下通过“PATH”搜索到的“java”命令是否就是第一步找到的那个。
  3. 最后,运行“java”命令并加上“-version”参数,看看输出的内容是否像正常的Java版本信息。

不过,这些步骤并不能保证用户没有做过什么奇怪的事情。

其实,如果是我,我就不太会在意这些。我会直接尝试从Python启动Java应用,假设用户的“java”命令是正确的。如果出现错误,我再去报告这些错误。

5

你可以使用控制台命令

>>>import os
>>>os.system("java -version")

java version "1.5.0_19"

或者查看vartec的回答,内容在 运行shell命令并捕获输出,里面讲了如何保存输出结果

撰写回答