Иногда эта ошибка указывает на то, что физическая память и подкачка на сервере полностью используются!
Недавно я видел эту проблему на сервере под управлением RedHat Enterprise Linux 5.7 с 48 ГБ оперативной памяти. Я обнаружил, что даже просто работает
java -version
вызвало ту же ошибку, которая установила, что проблема не относится к моему приложению.
Бег
cat /proc/meminfo
сообщил, что значения MemFree и SwapFree значительно ниже 1% значений MemTotal и SwapTotal, соответственно:
MemTotal: 49300620 kB
MemFree: 146376 kB
...
SwapTotal: 4192956 kB
SwapFree: 1364 kB
Остановка нескольких других запущенных приложений на машине несколько увеличила объем свободной памяти:
MemTotal: 49300620 kB
MemFree: 2908664 kB
...
SwapTotal: 4192956 kB
SwapFree: 1016052 kB
В этот момент новый экземпляр Java запустится нормально, и я смог запустить свое приложение.
(Очевидно, для меня это было лишь временное решение; у меня все еще есть непростая задача - провести более тщательный анализ процессов, запущенных на этой машине, чтобы выяснить, можно ли что-то сделать для уменьшения номинального использования памяти уровни, не прибегая к остановке приложений.)