gpt4 book ai didi

Windows 上的 PHP exec Java 不产生任何输出

转载 作者:行者123 更新时间:2023-12-02 07:05:47 26 4
gpt4 key购买 nike

我已经阅读了很多关于我的问题的类似 SO 问题,但似乎没有一个与我的问题有关。如果相关,我在 Apache 2.2 上运行 PHP 5.3.8,PHP exec() 作为 nt authority\system

运行
$cmd = "java -version";
$res = exec($cmd, $output, $return);

var_dump($res, $output, $return);

产生:

string '' (length=0)

array
empty

int 0

$return 为 0 表示这是成功的。有趣的是,如果我运行:

$cmd = "java -version 2> response";

创建了一个具有预期输出的文件:

java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02, mixed mode)

所以我的问题是:为什么 $output 没有被填充?

评论更新

$res = exec("dir c:", $output, $return); 的结果

string '               2 Dir(s)  335,636,791,296 bytes free' (length=51)

array
0 => string ' Volume in drive C is Local Disk' (length=32)
1 => string ' Volume Serial Number is D87C-E25C' (length=34)
2 => string '' (length=0)
...
12 => string ' 5 File(s) 1,158 bytes' (length=45)
13 => string ' 2 Dir(s) 335,636,791,296 bytes free' (length=51)

int 0

最佳答案

试试这个

$output = `java -version 2>&1`

注意命令周围的反引号,它的作用与 shell 命令完全一样

2>&1 应该将错误重定向到 stdout,因为 java 默认使用 stderror!

关于Windows 上的 PHP exec Java 不产生任何输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12260277/

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