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

Java中Runtime.exec调用explorer.exe遇连续空格路径失效问题

解决Runtime.exec调用explorer.exe处理含连续空格路径的问题

问题根源在于Runtime.getRuntime().exec(String command)的参数解析机制:它会按空格拆分命令字符串,当路径包含连续空格时,这种拆分逻辑会破坏路径的完整性,导致explorer无法识别目标路径,转而打开默认的「我的文档」。而CMD直接执行时的参数解析逻辑与Java的不同,所以能正常工作。

解决方案1:使用参数数组形式的exec重载方法

将命令和参数拆分为独立的数组元素传递,避免字符串拆分错误:

String path = "C:\\Prueba  doble  espacio\\";
Process process = Runtime.getRuntime().exec(new String[]{
    "explorer.exe",
    "/root,\"" + path + "\""
});

也可以尝试省略路径外的引号,因为参数数组传递时每个元素会被当作完整参数,explorer能正确识别带空格的路径:

String path = "C:\\Prueba  doble  espacio\\";
Process process = Runtime.getRuntime().exec(new String[]{
    "explorer.exe",
    "/root," + path
});

解决方案2:使用ProcessBuilder(推荐)

ProcessBuilder的参数处理更直观可靠,是Java启动外部进程的推荐方式:

String path = "C:\\Prueba  doble  espacio\\";
ProcessBuilder pb = new ProcessBuilder("explorer.exe", "/root," + path);
pb.start();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 02:30:51