Java exec()php是否总是将数组(大小=0)返回为空?
我试图在我的php程序中执行jar文件。 我用这个简单的例子进行测试:Java exec()php是否总是将数组(大小=0)返回为空?,java,php,exec,Java,Php,Exec,我试图在我的php程序中执行jar文件。 我用这个简单的例子进行测试: exec('java -jar "C:\wamp\www\Hello.jar" myName', $output); var_dump($output); 但它总是打印 array (size=0) empty 顺便说一句,jar文件确实System.out.println(“hello”+args[0])我正在cmd中测试它,它工作正常 请帮助我,我两天以来一直在努力解决这个问题 试试这个: exec('java
exec('java -jar "C:\wamp\www\Hello.jar" myName', $output);
var_dump($output);
但它总是打印
array (size=0)
empty
顺便说一句,jar文件确实System.out.println(“hello”+args[0])代码>我正在cmd中测试它,它工作正常
请帮助我,我两天以来一直在努力解决这个问题 试试这个:
exec('java -jar \"C:\wamp\www\Hello.jar" myName', $output);
而不是
exec('java -jar "C:\wamp\www\Hello.jar" myName', $output);
试一试
您必须避开反斜杠:将\
替换为\\
您应该分别构建CMD和JAR字符串。(良好的编程)
使用2>&1
将错误重定向到输出,以显示输出中的错误
简单:
$JAR = 'C:\\wamp\\www\\Hello.jar';
$CMD = sprintf(
'java -Xmx32m -jar %s myName 2>&1'
,escapeshellarg($JAR)
);
exec($CMD, $Output, $Status);
var_dump($CMD, $Output, $Status);
在调用java executableIt时尝试使用绝对路径它不起作用:(我尝试了这个echo exec('whoami');它正在打印'autorite nt\système',您可能想检查您是否在php.ini配置文件中禁用了安全模式。我尝试了这个echo exec('whoami');它正在打印'autorite nt\système'
$JAR = 'C:\\wamp\\www\\Hello.jar';
$CMD = sprintf(
'java -Xmx32m -jar %s myName 2>&1'
,escapeshellarg($JAR)
);
exec($CMD, $Output, $Status);
var_dump($CMD, $Output, $Status);