PHP, команды оболочки и файлы JAR - PullRequest
4 голосов
/ 10 ноября 2009

У меня есть файл jar, который я хотел бы выполнить с использованием PHP, но при запуске сценария все, что я получаю, это следующая ошибка: Не удалось зарезервировать достаточно места для кучи объектов. Я провел некоторый поиск, и мне кажется, что я получаю это, потому что команда не выполняется в оболочке входа в систему. Если это так, как мне это сделать? Я пробовал оба shell_exec() и exec(), и оба выдают ту же ошибку.

Спасибо за помощь!

1 Ответ

2 голосов
/ 10 ноября 2009

Использование exec () будет нормально работать; однако, в вашем случае, похоже, что Java не может выделить достаточно памяти для запуска (отсюда и сообщение об ошибке). Если вы работаете на виртуальной машине с ограниченным объемом ОЗУ и без пространства подкачки, вы обнаружите, что запускать даже самые простые программы Java практически невозможно.

Первый шаг - проверить, работает ли вообще Java на вашем компьютере. Попробуйте просто запустить

java -version

Если это не удается с той же ошибкой, вам придется каким-то образом увеличить объем доступной памяти (например, купить план с большим объемом памяти или подкачкой). Если вы не можете, вы можете обойтись, если ограничить максимальный размер кучи с помощью -Xmx16m (устанавливает максимальный размер кучи 16 мегабайт) или даже меньше, но в этом случае ваш файл JAR может не хватить памяти для запуска!

...