Я предполагаю, что вы говорите о не-Java "процессах", порожденных с помощью Runtime.exec(...)
и т. Д.
Ответ заключается в том, что это зависит от ОС, а не от того, что поддерживают стандартные библиотеки Java. Но если вы собираетесь сделать это в Linux (или UNIX), я могу подумать о трех подходах:
- Пусть Java порождает команду через скрипт оболочки, который использует встроенную
ulimit
для уменьшения пределов памяти, затем exec
s фактическая команда; см man 1 ulimit
.
- Напишите небольшую команду C, которая делает то же самое, что и оболочка оболочки. Это будет иметь меньше затрат, чем подход сценария оболочки.
- Попробуйте сделать то же самое с JNI и библиотекой собственного кода. Не рекомендуется, поскольку вам, вероятно, потребуется повторить поведение
Process
и ProcessBuilder
, а это может быть очень сложно.