2014-12-13 18 views
13

Mam zainstalowany tomcat7 na mojej maszynie Ubuntu. Przy próbie ponownego uruchomienia serwera dostaję komunikat ustawić JAVA_HOME ale jest on ustawiony w .bashrcDlaczego JAVA_HOME nie jest rozpoznawany przez tomcat7 w systemie Ubuntu?

export JAVA_HOME=/usr/lib/jvm/java-8-oracle 
export CATALINA_HOME=/usr/share/tomcat7 

Błąd:

[email protected]<ubuntu_14.04>:~$ sudo service tomcat7 restart 
[sudo] password for omkars: 
* no JDK or JRE found - please set JAVA_HOME 
[email protected]<ubuntu_14.04>:~$ echo $JAVA_HOME 
/usr/lib/jvm/java-8-oracle 

Co może być brakuje? Dzięki.

+0

pierwszy: wyeksportować zmienne środowiskowe jako „omkars” i rozpocząć „tomcat7” jako root za pomocą 'sudo '; środowiska nie zostaną przekazane do tego procesu. Po drugie: Nie mam pod ręką Ubuntu, ale: na RedHat/CentOS istnieją konfiguracje serwera aplikacji w '/ etc /' określające środowiska do uruchamiania. Spróbuj grep '/ etc' dla" JAVA_HOME ". –

Odpowiedz

22

Teraz działa!

Zmiany Zrobiłem to:

  • zmienił .bashrc jak wyjaśniono w pytaniu.
  • zmieniono /etc/init.d/tomcat7 na punkt do oracle Java8, którego tutaj nie ma!

    JDK_DIRS="/usr/lib/jvm/default-java ${OPENJDKS} /usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-sun /usr/lib/jvm/java-7-oracle **/usr/lib/jvm/java-8-oracle**" 
    

Następnie

[email protected]:~# sudo service tomcat7 restart 
* Starting Tomcat servlet engine tomcat7        [ OK ] 

Got wskazówkę z tej strony:
https://mifosforge.jira.com/wiki/display/MIFOSX/Install+Tomcat+7+on+Ubuntu+11.10+for+Mifos+X

Thanks

+0

Powinieneś zaakceptować to jako poprawną odpowiedź. Problem polega na tym, że skrypt startowy Ubuntu init.d (jeśli jest zainstalowany za pośrednictwem apt-get) dla Tomcat nie sprawdza, czy jest jvk w wersji java 8. –

+0

Dzięki @ChrisClark. – Omkar

+0

Dzięki @Okkar Twoja odpowiedź jest bardzo pomocna. –

3

Należy go ustawić dla użytkownika, który uruchamia usługę tomcat, a nie dla użytkownika.

Ustaw go na szeroki profil systemu, gdzieś w lokalizacji /etc/profile lub /etc/profile.d/, w zależności od konfiguracji urządzenia.

2

Można ustawić zmienną na środowisko w skrypcie setenv.sh. Zgodnie z dokumentem Running The Apache Tomcat 7.0:

Apart from CATALINA_HOME and CATALINA_BASE, all environment variables can be specified in the "setenv" script. The script is placed either into CATALINA_BASE/bin or into CATALINA_HOME/bin directory and is named setenv.bat (on Windows) or setenv.sh (on *nix).

Więc po prostu dodać następującą linię do setenv.sh:

export JAVA_HOME=/usr/lib/jvm/java-8-oracle 

ten sposób ustawiania zmiennej lokalnie.

3

Skrypt startowy na /etc/init.d/tomcat7 źródeł plików /etc/default/rcS przed wyszukiwaniem niektórych znanych lokalizacji instalacji.

Dodanie linii JAVA_HOME=/usr/lib/jvm/java-8-oracle do /etc/default/rcS poprawia problem z uruchomieniem no JDK or JRE found bez bezpośredniej modyfikacji skryptu /etc/init.d/tomcat7.

6

Wydaje się, że preferowanym sposobem postępowania jest odkomentowanie wpisu JAVA_HOME w /etc/default/tomcat7 i odpowiednie dostosowanie ścieżki.Jeśli używasz repozytorium webupd8 z instalatorem oracle-java8, jest to JAVA_HOME=/usr/lib/jvm/java-8-oracle.

1

Mam ten sam problem, ale ja go rozwiązać poprzez zmianę zmienną JDK_DIR w /etc/init.d/tomcat następująco:

JDK_DIRS="/usr/lib/jvm/default-java ${OPENJDKS} /usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-sun /usr/lib/jvm/java-7-oracle /usr/lib/jvm/java-8-oracle" 
Powiązane problemy