Вызов javac из php - PullRequest
       7

Вызов javac из php

2 голосов
/ 17 ноября 2010

У меня есть HelloWorld.java, расположенный на моем сервере, и я хотел бы скомпилировать эту программу, используя "javac" в php.

Итак, у меня есть следующий код

<?php 
exec("javac HelloWorld.java", $array); 
print_r($array);
?>

А вывод

Array ( )

Что я делаю не так?javac.exe находится там же, где и этот php-файл.

Любая помощь будет принята с благодарностью.Спасибо!

Ответы [ 3 ]

3 голосов
/ 17 ноября 2010

у javac нет вывода при успешной компиляции.Что бы вы ожидали в $array?

0 голосов
/ 17 ноября 2010

Риз Мур прав, что javac не имеет вывода в случае успеха, если вы хотите получить вывод из этого, попробуйте добавить '-verbose' к параметрам, то, что вы, вероятно, хотите сделать, это проверить успешность, используйтепараметр возвращаемого значения для этой цели.

Добавьте 2> & 1 к команде, чтобы получить поток ошибок в стандартный вывод (при условии, что bash является основной оболочкой).

<?php
exec("javac HelloWorld.java 2>&1", $output, $resultCode);

if ($resultCode) {
  echo "Result: " . $resultCode . "\n";
  echo implode("\n", $output);
}
?>
0 голосов
/ 17 ноября 2010

Это, безусловно, должно помочь вам

http://www.ibm.com/developerworks/opensource/library/os-php-commandline/index.html

Выходной параметр получает только стандартный вывод, если вам также требуется вывод ошибок, не забудьте перенаправить его. Если выходной параметр остается пустым после выполнения, а если нет, то вы должны быть в этом случае.

http://us.php.net/manual/en/function.exec.php

Или

использовать сквозной переход. Это похоже на выполнение.

Прочитайте предоставленные ссылки.

Примерно так:

<?php
# ...
# (function stuff)
ob_start();
passthru("php myscript.php, $result");
$content_grabbed=ob_get_contents();
ob_end_clean();

if($result=0){
 echo '<div>',$content_grabbed,'</div>';
}_
# (more function stuff)
# ...
?>

Я не знаю о недостатках этого метода. Может быть и увеличились накладные расходы? В любом случае я был счастлив обойти проблему с этим.

http://us.php.net/manual/en/function.passthru.php

...