Intereting Posts

java jar из php exec или shell_exec не работает для батика

Я пытаюсь сделать

exec(java -jar "C:\batik\batik-rasterizer.jar" -m image/png -d "C:/pathtoimg/temp/2fa8af078803491746235057c546c1b6.png" -w 800 "C:/pathtoimg/temp/2fa8af078803491746235057c546c1b6.svg"); 

это не дает мне никаких результатов, может кто-нибудь предположить, что я делаю неправильно.

машина Windows 2008 R2 предприятие iis 7 с fastcgi

exec ('java -version')

У вашего компьютера отключен UAC? (Windows 7 или Vista, доступ к C: с отсутствующими кликами UAC, будет ошибкой, поэтому для простоты отключите его),

Во-вторых, exec требует ввода строки,

В-третьих, нужно бежать, как сказал Филл

 exec('java -jar "C:/batik/batik-rasterizer.jar" -m C:/pathto/image/png -d "C:/pathtoimg/temp/2fa8af078803491746235057c546c1b6.png" -w 800 "C:/pathtoimg/temp/2fa8af078803491746235057c546c1b6.svg"'); 

ОБНОВЛЕНО ДЛЯ КОММЕНТАРИИ НА ФИЛЛЫ

Убедитесь, что вы разрешили использовать exec / system / backticks, используя CLI

  1. Создайте php-файл с помощью <?php exec("echo hello"); ?> <?php exec("echo hello"); ?> внутри его сохранить его
  2. Затем запустите CMD,
  3. откройте новое окно (откройте мой компьютер) и откройте приложение php.exe
  4. скопируйте адрес папки, в которой вы ее нашли
  5. в cmd введите «cd» без кавычек и после этого щелкните правой кнопкой мыши и нажмите «pase», затем нажмите «Enter»
  6. введите «php» (опять без кавычек), перетащите файл php, сохраненный в поле cmd, и отпустите его
  7. затем нажмите enter и посмотрите, будет ли он приветствовать в поле cmd

если это не работает, проверка java работает без пути к exe, в окнах cmd введите java --help и посмотрите, работает ли она

Возможно, вы захотите проверить путь вперед и назад

 exec(java -jar "C:\batik\batik-rasterizer.jar" -m image/png -d "C:/pathtoimg/temp/2fa8af078803491746235057c546c1b6.png" -w 800 "C:/pathtoimg/temp/2fa8af078803491746235057c546c1b6.svg"); 

может попытаться слэш:

 exec('java -jar "C:/batik/batik-rasterizer.jar" -m image/png -d "C:/pathtoimg/temp/2fa8af078803491746235057c546c1b6.png" -w 800 "C:/pathtoimg/temp/2fa8af078803491746235057c546c1b6.svg"'); 

или прямой косой черты w / param path:

 exec('java -jar "C:/batik/batik-rasterizer.jar" -m C:/pathto/image/png -d "C:/pathtoimg/temp/2fa8af078803491746235057c546c1b6.png" -w 800 "C:/pathtoimg/temp/2fa8af078803491746235057c546c1b6.svg"'); 

UPDATE жаль, что я думаю, что это обратная косая черта

может попытаться вернуть косую черту:

 exec('java -jar "C:\batik\batik-rasterizer.jar" -m image\png -d "C:\pathtoimg\temp\2fa8af078803491746235057c546c1b6.png" -w 800 "C:\pathtoimg\temp\2fa8af078803491746235057c546c1b6.svg"'); 

или обратная косая черта с параметром:

 exec('java -jar "C:\batik\batik-rasterizer.jar" -m C:\pathto\image\png -d "C:\pathtoimg\temp\2fa8af078803491746235057c546c1b6.png" -w 800 "C:\pathtoimg\temp\2fa8af078803491746235057c546c1b6.svg"'); 

Также, как указал Barkermn01, exec () требует ввода строки