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

Java中Runtime.exec分路径启动Chrome报错,求排查原因

为什么启动Chrome的两行Java代码一行报错?

嘿,我来帮你捋捋这个问题~ 你本来以为try块里的两行代码都能正常启动Chrome,但第一行却抛出了找不到文件的IO异常,咱们来拆解下问题出在哪。

先看你贴的代码:

import java.io.File;
public class Program {
    public static void main( final String[] args ) {
        try {
            //Process process = Runtime.getRuntime().exec("chrome.exe", null, new File("C:\\Program Files (x86)\\Google\\Chrome\\Application\\"));
            Process process = Runtime.getRuntime().exec("C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe");
            process.waitFor();
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
}

对应的报错堆栈信息:

java.io.IOException: Cannot run program "chrome.exe" (in directory "C:\Program Files (x86)\Google\Chrome\Application"): CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at java.lang.Runtime.exec(Runtime.java:620)
at java.lang.Runtime.exec(Runtime.java:450)
at Program.main(Program.java:16)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.(ProcessImpl.java:386)
at java.lang.ProcessImpl.start(ProcessImpl.java:137)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
... 3 more

核心问题所在

你可能误以为指定了工作目录(exec的第三个参数),Java就会自动在这个目录里查找chrome.exe,但Windows底层的CreateProcess函数(Java执行外部命令依赖的系统函数)不会把指定的工作目录加入可执行文件的搜索路径。

当你写exec("chrome.exe", null, new File("..."))时,Java只会在系统PATH环境变量包含的目录里找chrome.exe,完全不会去你指定的Chrome安装目录搜索,所以才会报找不到文件的错误。而第二行用了完整的绝对路径,系统能直接定位到可执行文件,所以能正常运行。

修复第一行代码的方法

如果想保留指定工作目录的写法,你需要把命令改成相对路径,明确告诉系统要在当前工作目录下查找文件:

Process process = Runtime.getRuntime().exec(".\\chrome.exe", null, new File("C:\\Program Files (x86)\\Google\\Chrome\\Application\\"));

这里的.\\代表当前工作目录,这样系统就会去你指定的Chrome安装目录里找chrome.exe了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:41:45