Depende da sua VM java. Eu estou usando o hotspot vm você pode fazer o seguinte.
Use a opção -XX: OnOutOfMemoryError = java cli para enviar o sinal SIGKILL ao processo, isso fará com que o SMF inicie novamente, um SIGKILL é necessário porque um processo java OutOfMemory não responde a nenhum sinal. Você pode adicionar uma opção -XX: -HeapDumpOnOutOfMemoryError para obter um dump do heap para analisar, mas isso pode ocupar muito espaço.
Documentação: link