gpt4 book ai didi

java - Java 的 ProcessBuilder 在哪里寻找执行命令?

转载 作者:搜寻专家 更新时间:2023-11-01 02:14:30 24 4
gpt4 key购买 nike

当我使用 ProcessBuilder 执行命令时,它如何知道在哪里寻找该命令?使用this hack/trick我修改了我的 PATH 变量(通过检查 processBuilder.environment() 验证)是坏的(空的,工作目录等)但是 ProcessBuilder 仍然可以执行排序,回显,bash 等。就好了.这是怎么做到的?!

注意:我的特定开发环境是 OSX,但此代码也可以在 Red Hat Enterprise Linux 上运行。

最佳答案

文档说

[...] a command, a list of strings which signifies the external program file to be invoked and its arguments, if any. Which string lists represent a valid operating system command is system-dependent. [...]

这实质上意味着它寻找程序执行的位置取决于您运行的特定系统和 JVM。

我找不到 JVM/系统行为的完整矩阵,但据推测它的行为类似于系统的流行 shell(bash for *nix 和 cmd对于 windows)即它从左到右搜索 PATH 环境变量中的目录并执行它找到的第一个可执行文件。

关于java - Java 的 ProcessBuilder 在哪里寻找执行命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9368666/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com