Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
与Java中的ProcessBuilder混淆_Java_Processbuilder - Fatal编程技术网

与Java中的ProcessBuilder混淆

与Java中的ProcessBuilder混淆,java,processbuilder,Java,Processbuilder,这是我第二次在使用ProcessBuilder从系统调用中提取值时遇到问题 @org.junit.Test public void test() { Process process = null; ProcessBuilder pb = new ProcessBuilder("QQ.exe"); pb.directory(new File("D:\\Program Files (x86)\\Tencent\\QQ\\Bin\\")); try {

这是我第二次在使用
ProcessBuilder
从系统调用中提取值时遇到问题

@org.junit.Test
public void test() {
    Process process = null;
    ProcessBuilder pb = new ProcessBuilder("QQ.exe");
    pb.directory(new File("D:\\Program Files (x86)\\Tencent\\QQ\\Bin\\"));
    try {
        process = pb.start();
    } catch (IOException e) {
        e.printStackTrace();
    }

    }
上面的结果是:“无法运行程序“QQ.exe”(在目录“D:\program Files(x86)\Tencent\QQ\Bin)”中):CreateProcess error=2,系统找不到指定的文件”

那么Process.dir()的函数是什么呢? 有人告诉我,我指定的目录是一个运行进程的工作目录——它无助于查找可执行文件。 但是下面的代码可以正常运行

@org.junit.Test
public void test() {
    Process process = null;
    ProcessBuilder pb = new ProcessBuilder("cmd","/c","QQ.exe");
    pb.directory(new File("D:\\Program Files (x86)\\Tencent\\QQ\\Bin\\"));
    try {
        process = pb.start();
    } catch (IOException e) {
        e.printStackTrace();
    }

    }
qq.exe不在路径中。谁能告诉我为什么?我是中国人。我的英语不好,请原谅我的英语不好。

定义流程的工作目录,而不是“启动”,因此:

案例1:
QQ.exe
是从工作目录
D:\\Program Files(x86)\\Tencent\\QQ\\Bin\\
启动的,但未找到
QQ.exe
(不在
%PATH%
中)

案例2:
cmd.exe
从工作目录
D:\\Program Files(x86)\\Tencent\\QQ\\Bin\\
启动并找到
QQ.exe
(cmd位于当前工作目录中的
%PATH%
QQ.exe


我们可以假设
ProcessBuilder
启动流程,然后执行工作目录更改。

您知道Java标准版的Javadocs吗?至少是这样。似乎这个网站已经不存在了:(甲骨文在他们的网站上有很多断开的链接。这个网站在中国是无法访问的