запуск java jar из php exec или shell_exec не работает для батика - PullRequest
0 голосов
/ 27 мая 2011

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

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 предприятия иис 7 с fastcgi

exec ('java -version')

Ответы [ 2 ]

1 голос
/ 27 мая 2011

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

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

1 голос
/ 27 мая 2011

Возможно, вы захотите проверить путь прямой и обратной косой черты

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"');

или прямую косую черту с указанием пути к параметру:

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('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 () требуется ввод строки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...