2012-10-15 13 views
5

Połączyłem się z serwerem opartym na systemie Linux przy użyciu ssh. Ostatnio mam zainstalowane JDK stosując następujące polecenie:Jak rozwiązać problem "Wystąpił błąd podczas inicjowania maszyny wirtualnej VM"?

sudo yum install java-1.6.0-openjdk-devel

I jdk zainstalowane pomyślnie, ale ilekroć uruchomić komendę java lub javac otrzymuję następujący błąd:

Error occurred during initialization of VM 
Could not reserve enough space for object heap 
Could not create the Java virtual machine. 

Nawet, polecenie java -version działa , przyniesie ten błąd. Kiedy staram się dać więcej miejsca przy użyciu Javy java -Xmx512m -Xms256m -version, będę się następujący błąd:

*** glibc detected *** java: double free or corruption (!prev): 0x00007fc84400e270 *** 
*** glibc detected *** java: double free or corruption (fasttop): 0x00007fc8440089f0 *** 
# 
Aborted (core dumped) 

Jak mogę rozwiązać ten problem?

Dzięki z góry

+0

spróbuj "jaki java", aby zobaczyć, który java jest uruchomiony? prawdopodobnie nie działa na właściwych? lub bezpośrednio wykonać java z katalogu bin? –

+2

Czy masz ustawione ograniczenia pamięci? Jaki rodzaj Linux? RHEL, Fedora? uruchom '$ uname -a' i dodaj dane wyjściowe do pytania. i '$ ulimit -a' również będzie pomocne – user1516873

+0

Martwię się o ten komunikat glibc ... – Shark

Odpowiedz

2

Nigdy nie widziałem tego rodzaju wyjątku, więc to jest moje najlepsze przypuszczenie: czy próbowałeś ograniczyć stack size by using -Xss JVM parameter (tj. -Xms8m -Xmx16m -Xss4m)? Również szybkie googlowanie sugeruje, że export MALLOC_CHECK_=0 może pozwolić ci przejść, ale nie jestem pewien, czy JVM będzie dobrze działać.

-1

Wygląda jak używasz JDK 32-bitowej wersji. Jeśli tak, nie możesz przypisać rozmiaru sterty większym niż 1.2GB lub coś podobnego.

Użyj 64-bitowego JDK lub spróbuj z 1.2G jako maksymalnym stosem.

+0

Ale nie używam więcej niż 1,2 GB sterty, użyłem -Xmx512m, co oznacza, że ​​używam 512MB sterty na max. –

1

Wirtualny serwer Linux? Co zrobić, gdy uruchomić:

java -Xmx1m -version

i

ulimit -a

Wygląda pamięci przydziale problem. Możesz spróbować zwiększyć przestrzeń wymiany, jeśli to możliwe.

1

Dla mnie wygląda na to, że brakuje pamięci do uruchomienia maszyny wirtualnej (może pamięci fizycznej, pamięci wirtualnej lub ulimit) - powinieneś spróbować zmniejszyć ilość pamięci przydzielonej do maszyny wirtualnej (domyślnie w 64 MB), a nie zwiększanie go.

+0

Java-Xmx3000m -Xms3000m Wystąpił błąd podczas inicjowania maszyny wirtualnej Nie można zarezerwować wystarczającej ilości miejsca na kupkę obiektu. Błąd: Nie można utworzyć wirtualnej maszyny języka Java. Jeszcze większe wartości powodują awarię maszyny wirtualnej – thedayofcondor

0

Niższe -Xms (nie xmx) .Użyj -Xms40m na ​​przykład.Jeśli uruchamia się, jak podano w innych odpowiedzi, może być zbyt mało pamięci, aby odzyskać 256m dla vm na początku.

Powiązane problemy