4

请参阅此超级用户问题。我需要运行命令

explorer.exe /select,"C:\Program Files\foobar"

来自爪哇。下面的 Java 代码不像上面的命令行调用那样工作(资源管理器选择一个完全不同的目录):

Runtime.getRuntime().exec(new String[] {
    "explorer.exe",
    "/select,\"C:\\Program Files\\foobar\""
});

我在纯 Java 方面还有哪些其他选择(没有本机代码)?

4

2 回答 2

5

您可以将其/select放在一个单独的String标记中以阻止它被视为路径的一部分:

Runtime.getRuntime().exec(new String[] {
        "explorer.exe",
        "/select,", 
        "\"C:\\Program Files\\foobar\""
        });
于 2012-11-29T11:51:58.677 回答
0

试试 ProcessBuilder。该 API 允许您在不引用的情况下传递参数。请参阅http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/ProcessBuilder.html#command(java.util.List )

于 2012-11-29T11:46:47.003 回答