Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.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 exec()php是否总是将数组(大小=0)返回为空?_Java_Php_Exec - Fatal编程技术网

Java exec()php是否总是将数组(大小=0)返回为空?

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

我试图在我的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 -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);