我是 PHP 的初学者。
我想使用 PHP 执行 java .jar 文件。jar 文件从 STDIN
获取输入并在 STDOUT
生成输出。要执行 jar 文件,这是我在我的 Ubuntu Linux 终端中做了什么:
./java/bin/java -jar abc.jar
<here goes the STDIN>
Ctrl+D
<The output gets generated here at the STDOUT>
这很完美。但是当我在 PHP 中将其复制为:
$p=shell_exec("./java/bin/java -jar abc.jar $s 0<&-");
这会发送 $p
当 STDIN
为空时生成的输出。这绝对意味着 $s
没有被传递。我很完美确保我的 jar 文件工作正常,这是我的错误所在的 php 脚本。任何人都可以指出我的错误吗?提前致谢。
最佳答案
在黑暗中完成拍摄,但是:
$p=shell_exec(sprintf('./java/bin/java -jar abc.jar "%s" 0<&-', addslashes($s)));
$s
可能包含破坏命令语法的未转义字符。
关于java - 无法在 PHP 中使用 shell_exec() 传递 STDIN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33566581/