Я попытался настроить сервер экспорта на моем Linux-сервере со следующей командой, чтобы загрузить график как изображение из Highcharts .
$command = "java -jar batik-rasterizer.jar -m image/png -d temp/1a6b5dd08ec607454b81f91097fb24a6.png temp/1a6b5dd08ec607454b81f91097fb24a6.svg 2>&1 "; $output = shell_exec($command); echo "Command: $command <br>"; echo "Output: $output";
Он отлично создает образ в моей локальной машине Windows, но я загрузил его на моем Linux-сервере, я получаю ошибки.
About to transcode 1 SVG file(s) Converting 1a6b5dd08ec607454b81f91097fb24a6.svg to temp/1a6b5dd08ec607454b81f91097fb24a6.png ... (.:21519): Gtk-WARNING **: cannot open display:
Почему это происходит?
И я замечаю, что изображение создается с недопустимым изображением 0 kb
Примечание. Я также пробовал следующие методы .
1), содержащую batik-rasterizer.jar, и файлы имеют владельца как root, а разрешение установлено как 777.
2) Я также пытаюсь выполнить его с / user / bin / java , который java установил команду pf java .
3) Я также пытаюсь выполнить эту команду как root, используя терминал, используя putty, Java установлен на моем сервере.
Выполнить java с параметром -Djava.awt.headless=true
командной строки:
$command = "java -Djava.awt.headless=true -jar batik-rasterizer.jar -m image/png -d temp/out.png temp/in.svg 2>&1 ";
Обновить
Если передача дополнительной опции командной строки по-прежнему не дает ожидаемого результата, проверьте свою версию Java. Обновление вашей JRE до более поздней версии (1.7) также может решить проблему.