You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Java中通过PowerShell正确获取ChromeDriver版本号?

解决Java调用PowerShell获取ChromeDriver版本的问题

你遇到的错误本质是PowerShell找不到chromedriver.exe的位置——它既不在系统环境变量PATH的目录里,你也没在命令中指定完整绝对路径。以下是两种可行的解决方法:

方法一:指定ChromeDriver的完整绝对路径执行命令

在PowerShell中,执行非内置程序时,如果程序不在PATH范围内,必须指定完整路径。如果路径包含空格,还需要用&(调用操作符)包裹带引号的路径。

Java代码示例

使用ProcessBuilder构建命令(比Runtime.exec更灵活可靠):

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class ChromeDriverVersionChecker {
    public static void main(String[] args) {
        // 替换为你的chromedriver.exe实际完整路径
        String chromeDriverPath = "D:\\automation\\chromedriver.exe";
        // PowerShell命令:调用指定路径的chromedriver并执行--version
        String[] command = {
            "powershell.exe",
            "-Command",
            "& '" + chromeDriverPath + "' --version"
        };

        try {
            Process process = new ProcessBuilder(command).start();
            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println("ChromeDriver版本:" + line);
            }
            process.waitFor();
        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        }
    }
}

方法二:将ChromeDriver所在目录添加到系统PATH

如果不想每次都写完整路径,可以把chromedriver.exe所在的文件夹添加到系统环境变量PATH中。添加完成后重启Java IDE或终端,此时直接执行chromedriver.exe --version就能被PowerShell识别。

简化后的Java代码

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class ChromeDriverVersionChecker {
    public static void main(String[] args) {
        String[] command = {
            "powershell.exe",
            "-Command",
            "chromedriver.exe --version"
        };

        try {
            Process process = new ProcessBuilder(command).start();
            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println("ChromeDriver版本:" + line);
            }
            process.waitFor();
        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        }
    }
}

注意事项

  • 如果ChromeDriver路径包含空格,必须用单引号包裹路径,同时搭配&调用,否则PowerShell会解析错误。
  • 优先使用ProcessBuilder而非Runtime.exec,前者能更好地处理命令参数,避免因空格、特殊字符导致的解析问题。

内容的提问来源于stack exchange,提问作者MOs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 08:30:50