2013-08-27 21 views
11

Próbuję ustawić ścieżkę JAVA_HOME, ponieważ mój serwer Tomcat jej szuka. Próbuję go ustawić, ale nie wydaje się działać i powoduje błąd, gdy robię. Próbuję ustawić Java w setclasspath.bat użyciuTomcat 6 JAVA_HOME

set JAVA_HOME="C:\Program Files (x86)\Java\jre7" 

To jest na początku setclasspath.bat

set JAVA_HOME="C:\Program Files (x86)\Java\jre7" 
if not "%JAVA_HOME%" == "" goto gotJdkHome 
if not "%JRE_HOME%" == "" goto gotJreHome 
echo Neither the JAVA_HOME nor the JRE_HOME environment variable is defined 
echo At least one of these environment variable is needed to run this program 
goto exit 

Kiedy ustawić i uruchomić ten "startup.bat start" to wyświetla

pliki było nieoczekiwane w tej chwili

Czy możesz mi pomóc?

+0

Spróbuj ustawić JAVA_HOME jako zmiennej środowiskowej, należy przejść do zakładki Zaawansowane ustawienia systemowe , kliknij Nowy i ustaw JAVA_HOME. –

+3

Twoja ścieżka zawiera białe znaki, to nie działa w plikach .BAT. Musisz ująć ścieżkę w cudzysłów. 'set JAVA_HOME =" C: \ Program Files (x86) \ Java \ jre7 "'. Jednak wskazujesz na środowisko JRE, aby tomcat działał, musisz wskazywać na JDK (tomcat potrzebuje kompilatora i nie jest częścią JRE, ale JDK). –

Odpowiedz

-3

Wskazujesz na środowisko JRE. Musisz wskazać plik JDK, który, biorąc pod uwagę lokalizację środowiska JRE, może być podobny do tego, co ma postać C:\Program Files (x86)\Java\jdk1.6.0_26 lub podobnej. Lub, jeśli masz tylko zainstalowane środowisko JRE, musisz zainstalować pełny pakiet JDK. Tomcat musi mieć możliwość kompilowania stron JSP do plików .class, których JRE nie może wykonać.

+1

Rewizja jest uwzględniana, ponieważ ta odpowiedź jest rażąco niepoprawna. Wyjaśniłem, co powoduje początkowy problem i jak tego uniknąć w [moja odpowiedź tutaj] (http://stackoverflow.com/questions/18468681/tomcat-6-java-home/29076720#29076720). – ZaLiTHkA

1

Place ścieżka w cudzysłowie:

set JAVA_HOME="C:\Program Files (x86)\Java\jre7" 

Błąd wynika z faktu, że to parsowania plików w Program Files jako osobny parametr, który zestaw nie spodziewa. Dlaczego SET nie czyta tego poprawnie Nie mogę powiedzieć, nie wiedząc więcej o tym, z jakiego systemu operacyjnego korzystasz, z której powłoki poleceń korzystasz Tomcat i tak dalej.

+0

Używam go w systemie Windows Server 2008 R2 Enterprise 64bi, a kod o to plik bat; Właśnie uruchamiam Tomcat poprzez CMD. – QuinsUK

1

Powodem, dla którego polecenie się nie udało, jest to, że ma białe spacje między "Program Files (x86)" i zaczyna czytać polecenie z "Files (x86)". Zamiast tego umieszczamy go między podwójnymi cytatami, takimi jak poniższe. spróbować ..

set JAVA_HOME="C:\"Program Files (x86)"\Java\jre7" 
+0

Nie zapewnia to odpowiedzi na pytanie. Aby skrytykować lub poprosić o wyjaśnienie od autora, zostaw komentarz pod swoim postem - zawsze możesz komentować swoje posty, a gdy już masz wystarczającą [reputację] (http://stackoverflow.com/help/whats-reputation), być w stanie [komentować dowolny wpis] (http://stackoverflow.com/help/privileges/comment). –

+0

Będę edytować odpowiedź od razu .. Dziękuję. –

6

Miałem ten sam problem w systemie Windows 7 z poniższej definicji (I umieścić go w pliku setenv.bat w folderze bin jdk w sposób określony przez Tomcat 7 za RUNNING.txt.

set JAVA_HOME="C:\Program Files (x86)\Java\jre7" 

próbowałem tylko usunięcie cudzysłowów całkowicie.

set JAVA_HOME=C:\Program Files (x86)\Java\jre7 

i Tomcat następnie zaczął

+0

To rozwiązanie sprawdziło się: +1. – TypeIA

27

Uwaga: Zdaję sobie sprawę, jest to już dość stare pytanie, ale wiele z zamieszczonych tu odpowiedzi jest albo niepełnych, albo niedokładnych. Mam nadzieję, że to pomoże uratować kilka bólów głowy.

Po pierwsze: Tomcat nie potrzebuje do uruchomienia JDK, będzie działał dobrze z JRE, o ile wie, że to JRE.

Po drugie, błąd z pierwotnego pytania wynika z problemu ze składnią polecenia set JAVA_HOME=.... Sam Apache poradzi sobie z tym lepiej, usuwając i dodając znaki cudzysłowu.

Ponadto, bardzo polecam utworzenie pliku setenv.bat w folderze . Domyślnie jest on nieobecny, więc jeśli go jeszcze nie masz, utwórz go i dodaj tam linie set JAVA_HOME=... lub set JAVA_HOME=... lub set JAVA_HOME=....

Run z JRE

Zgodnie running.txt:

Zmienna JRE_HOME służy do określenia położenia JRE. Zmienna JAVA_HOME służy do określania położenia JDK.

Używanie JAVA_HOME zapewnia dostęp do pewnych dodatkowych opcji uruchamiania , które są niedozwolone, gdy używany jest JRE_HOME.

Jeśli podano oba JRE_HOME i JAVA_HOME, używany jest JRE_HOME.

Więc uruchomieniem w ten sposób, będziesz potrzebować:

set "JAVA_HOME=" 
set "JRE_HOME=C:\Program Files (x86)\Java\jre7" 

Usuwanie zmienna JAVA_HOME jest bezpieczny w razie awarii, ale nie jest to naprawdę konieczne. Zgodnie z dokumentami Tomcat i tak spróbuje najpierw użyć zmiennej JRE.

rozwiązanie dla danego problemu

Take Uwaga specjalna pozycję cudzysłowie. W ten sposób zachowaj cały ciąg w jednej zmiennej, bez uwzględniania cudzysłowów w samej treści zmiennej.

Na przykład:

set %TEST%="hello" 
echo "%TEST%" 

wyświetli ""hello"".

set "%TEST%=hello" 
echo "%TEST%" 

Wyjdzie "hello".

Skrypt uruchamiania pliku wsadowego próbował użyć ""C:\Program Files (x86)\Java\jre7"", w którym pierwsza nieumarła przestrzeń znajduje się pomiędzy "Programami" i "Plikami".

Jak już wskazano, usunięcie cudzysłowu (w tym przypadku przynajmniej) działałoby, ale na tym polegać jest niebezpiecznie. Zamiast tego odtwórz je od początku i zawiń wartości zmiennej o wartości i w cudzysłowach.

+1

To działało idealnie! Początkowo "ustawiłem% JAVA_HOME% =" C: \ Program Files \ path \ to \ jdk "' zgodnie z tym [tutorialem] (https://www.youtube.com/watch?v=gz1pnr7P8lY). Ale wyczyściłem JAVA_HOME przy pomocy 'set" JAVA_HOME = "' i uruchomiłem 'set" JRE_HOME = C: \ Program Files \ path \ to \ jre "'. Wychodząc z * nix, zaczynało to być bólem. Dzięki! – tmthyjames

+0

Doskonała odpowiedź ... zaczęła działać – spt025

1
  • Najpierw zainstaluj java i znajdź ścieżkę instalacji.
  • Znajdź ścieżkę instalacyjną tomcat i znajdź plik startup.bat w katalogu \ bin
  • Otwórz program startowy.bat i dodaj poniżej (przykład) linie tuż po setlocal i przed rem Guess CATALINA_HOME if not defined
:: JAVA 
set JAVA_HOME=D:\thushara_data\Java\jdk1.8.0_73 
set PATH=%JAVA_HOME%\bin;%PATH% 

Teraz spróbuj ponownie uruchomić startup.bat