it-swarm.com.de

Tomcat wird nicht ausgeführt, obwohl der Java_HOME-Pfad korrekt ist

Wenn ich versuche, Tomcat mit startup.bat auszuführen, erhalte ich die folgende Fehlermeldung:

The Java_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: Java_HOME should point to a JDK not a JRE

Aber dann versuche ich C:\>echo %Java_home% und erhalte folgendes Ergebnis

C:\Program Files\Java\jdk1.6.0_25\bin

Ich habe sogar versucht, Java_HOME manuell auf die Systemvariablenliste einzustellen, aber dieses Problem bleibt bestehen.

Was kann ich tun, um das Problem zu lösen?

Ich verwende Windows 7.


Aktualisieren

Nachdem ich eine neue Systemvariable mit dem Namen Java_HOME gesetzt und den Pfad auf "C:\Program Files\Java\jdk1.6.0_25\bin\" gesetzt habe, habe ich das Startskript erneut versucht und diesmal bekomme ich einen neuen Fehler.

D:\Work\Apache-Tomcat-6.0.35\bin>startup.bat
Files\Java\jdk1.6.0_25"" was unexpected at this time.

Irgendeine Idee, was dieser Fehler bedeutet?

Ich habe sogar versucht, den Pfad auf "C:\Program Files\Java\jdk1.6.0_25\" (also ohne bin ) zu setzen, aber der gleiche Fehler tritt auf.

23
Quazi Irfan

Versuchen Sie, Java an einem anderen Ort zu installieren - in einem Verzeichnis ohne Leerzeichen. Setzen Sie die Variable Java_HOME erneut und versuchen Sie es erneut. Ich erinnere mich, dass Tomcat in Windows XP einige Probleme mit Leerzeichen hatte, wenn beim Starten enthaltene Variablen Leerzeichen enthielten. Vielleicht ist es mit Windows 7 ähnlich.

Ich erinnere mich, dass ich einige Zeilen in Tomcat-Java-Klassen ändern musste, die den Tomcat-Startvorgang behandelten.

@Edit: Luciano schlug mich zu bemerken, aber Sie sollten auch bin aus Java_HOME entfernen.

@Edit: Ich erinnere mich auch, dass ein anderer Fix (den ich nicht selbst getestet habe) darin bestand, Java_HOME auf die Kurzfassung zu setzen, z. C:\Progra~1\Java\jdk1.6.0_25

27
Mateusz Dymczyk

Ich denke, dass Ihr Java_HOME darauf zeigen sollte

C:\Program Files\Java\jdk1.6.0_25

anstatt

C:\Program Files\Java\jdk1.6.0_25\bin

Das heißt ohne den Ordner bin .

UPDATE

Dieser neue Fehler erscheint mir, wenn ich Java_HOME mit den Anführungszeichen wie Sie gesetzt habe. Verwenden Sie Anführungszeichen? Wenn ja, entfernen Sie sie.

19
Luciano

Vermeiden Sie das Semikolon am Ende aller Umgebungsvariablen ... von Java_HOME oder JRE_HOME

Java_HOME=C:\Program Files\Java\jdk1.6.0_25\bin

und

JRE_HOME=C:\Program Files\Java\jdk1.6.0_32\jre

sollte wie gezeigt sein ...

8
Nitesh Jain

Ich hatte Win 8 x86 installiert. Meine Variable Path hatte den Eintrag C:\Program Files\Java\jdk1.6.0_31\bin und ich hatte auch folgende Variablen:

  • Java_HOME: C:\Program Files\Java\jdk1.6.0_31;
  • JRE_HOME: C:\Program Files\Java\jre6;

Mein Tomcat ist unter C:\Program Files\Apache Software Foundation\Apache-Tomcat-7.0.41 installiert.

Und trotzdem hat es bei mir nicht funktioniert.

Ich habe versucht, Program Files in diesen Pfaden durch Progra~1 zu ersetzen. Ich habe auch versucht, Java in einen anderen Ordner zu verschieben, damit der vollständige Pfad keine Leerzeichen enthält. Aber nichts hat funktioniert.

Schließlich waren Umgebungsvariablen, die für mich funktionierten,

  • Pfadvariable beibehalten, wie bei vollem Program Files, d. H. C:\Program Files\Java\jdk1.6.0_31\bin
  • Java_HOME: C:\Program Files\Java\jdk1.6.0_31
  • Gelöschter JRE_HOME

Was ich getan habe, ist JRE_HOME und das Semikolon am Ende von Java_HOME entfernt. Ich denke, Semikolon sollte kein Problem sein, obwohl ich es entfernt habe. Ich gebe diese Einstellungen, da nach vielem Googeln nichts für mich funktioniert hat und plötzlich scheinen diese zu funktionieren. Sie können replizieren und sehen, ob es für Sie funktioniert.

Dies funktionierte auch für Win 7 x64, wo

  • Pfadvariable enthalten C:\Program Files (x86)\Java\jdk1.7.0_17\bin
  • Java_HOME ist auf C:\Program Files (x86)\Java\jdk1.7.0_17 gesetzt (ohne Semikolon)

Bitte sagen Sie mir, warum dies funktioniert hat. Ich weiß, dass JRE_HOME eine seltsame Lösung war.

5
Mahesha999

Entfernen Sie die 'bin' von Java_HOME. Das löst das Problem.

2
cijothomas

Umgebungsvariable setzen ([Windows-Taste] + [Pause-Taste], wechseln Sie zu "Erweitert", klicken Sie auf "Umgebungsvariablen"), klicken Sie in "Systemvariablen" (untere Liste) auf "Neu" (oder "Bearbeiten", wenn Sie bereits eine haben )

name: Java_HOME

wert: C:\PROGRA ~ 1\Java\JDK16 ~ 1.0_3

für C:\Programme\Java\jdk1.6.0_32

oK klicken", 

gehe zu "Pfad" in "Systemvariablen",

hinzufügen ; am Ende der Zeile (sofern nicht bereits eine vorhanden ist),

add: C:\PROGRA ~ 1\Java\JDK16 ~ 1.0_3\bin

klicken Sie auf "OK". - Starten Sie Ihren Computer neu (empfohlen) 

1
user257319

Manchmal macht semiColon eine Sache bitte stelle sicher 

Java_HOME=c:\Program Files\Java\jdk1.6.0_32 

aber nicht 

Java_HOME=c:\Program Files\Java\jdk1.6.0_32;

Das gleiche Problem, das ich bekam, aber nicht gelöst

0
user3418679

Ich habe den Tomcat gelöscht und erneut entpackt, und es hat funktioniert.

0
Alex

Setzen Sie Umgebungsvariablen für Java_HOME und JRE_HOME ohne den\bin . Das hat für mich funktioniert

0

Für mich bei Atlassians Bambus war das Problem, dass ich den Befehl in Sprachmarken verpackt hatte

So

SET JRE_HOME="C:\Program Files\Java\jre1.8.0_121"

War falsch, wo denn die richtige Version ist 

SET JRE_HOME=C:\Program Files\Java\jre1.8.0_121

Dies gab mir die Fehlermeldung

Files\Java\jre1.8.0_121"" was unexpected at this time.
0
tim.baker

Ich habe das eingestellt 

variablenname: Java_HOME Wert: C:\Programme\Java\jdk1.6.0_32

Ich setze diese Eigenschaften in System-/Umgebungsvariablen ohne Semikolon. Tomcat läuft auf meinem System.

Es funktioniert wirklich.

0
Veluru

es gibt zwei Arten von Umgebungsvariablen Erste Benutzervariable. Wenn Sie diesen Pfad verwenden, funktioniert er nur für diesen bestimmten Benutzer . Zweitens ist die Systemvariable. In meinem System habe ich Java_HOME in der Systemvariablen gesetzt, es hat nicht funktioniert, dann habe ich den Pfad in Benutzervariable eingestellt. 

0
satya

Um Tomcat8 ausführen zu können, muss JRE_HOME in Env Variable definiert sein. 

Java_HOME alleine reicht nicht aus, auch wenn es richtig eingestellt ist. 

JRE_HOME = C:\Program Files\Java\jdk1.8.0_77\jre

Sie sollten die JRE auswählen, die sich in SDK befindet, d. H. Eine mit Ihrer JDK (SDK) -Installation

Beim Kompilieren von JDK zur Unterstützung von JSP müssen Servlets kompiliert werden, die aus * .jsp-Dateien generiert werden. Andernfalls ist JRE erforderlich. Wenn Sie also entwickeln, benötigen Sie Java_HOME und bei der Bereitstellung JRE_HOME. 

0
vimal krishna

Stellen Sie außerdem sicher, dass Sie über die richtige Version von Tomcat für den CPU-Typ verfügen. Ich hatte einen 64-Bit-Tomcat auf einem 32-Bit-O/S-Gerät installiert, aber es gab mir die Java_HOME-Ausnahme, wenn dies überhaupt nicht der Fall war.

0
jimmy