Java Server Pages Status 500 Unable to find a javac compiler

dananudel

Grünschnabel
Hallo,

ich hoffe jmd. kann mir helfen.
Ich habe das JDK 1.5.0 und Tomcat 5.0.28 installiert.
Nun möchte ich mit Eclipse an JSPs arbeiten. Ich hab auh schon
das Sysdeo-Plugin besorgt. Alles klappt: der Server startet.Der LocalHost
wird auch angezeigt, Servlets werden angezeigt usw.
Nur beim Aufrufen von JSPs streikt der Browser. Und zwar wird folgende
Meldung vom Compiler gemeldet:

17.02.2005 15:38:01 org.apache.jasper.compiler.Compiler generateClass
SCHWERWIEGEND: Error compiling file: /D:/Daten/ADV/Java/Praktikantentage/work//org/apache/jsp\HelloJSP_jsp.java javac Compiling 1 source file

Und das erscheint im Browser:

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Unable to compile class for JSP
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:97)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:346)
org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:414)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:472)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause

Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK
org.apache.tools.ant.taskdefs.compilers.CompilerAdapterFactory.getCompiler(CompilerAdapterFactory.java:106)
org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:935)
org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:764)
org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:382)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:472)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.

Apache Tomcat/5.0.28


Ich bin total verzweifelt, da ich eine Anwendung programmieren soll und mir nun die Zeit davon läuft. Der Witz ist, dass es schon mal fuktioniert hat und zwar mit meinem allerersten Test-Jsp. Als ich dann ein weiteres hinzugefügt habe, ging es plötzlich nicht mehr. Leider bin ich absoluter Newbie.. Muß ich evtl. der web.xml Einträge hinzufügen.
Könnte ich was vergessen haben. Catalina_Home und Java_Home sind auch richtig gesetzt.

Wenn mir irgendjmd. helfen könnte, wäre ich wirklich sehr dankbar!

Dana
 
Hallo Thomas,

das ist es ja. Java_Home zeigt auf das Verzeichnis von JDK 1.5.0.
Das müßte doch so richtig sein.

Gibt es denn etwas anderes was ich falsch gemacht haben könnte?
Ich schätz ja, dass es irgendein typischer Anfängerfehler sein könnte.
Zumahl es ja auch schon funktioniert hatte (bis ich ein weiteres JSP
erstellt hatte mit komplexeren Aufbau.)

Dana
 
Hi,

das hier: "com.sun.tools.javac.Main is not on the classpath"

...sieht mir eher danach aus, als ob die "tools.jar" aus deinem sdk ("DeinSDKPfad/lib/tools.jar") noch nicht im Tomcat bereit steht. Schau mal in das "DeinTomcatDir/common/lib"-Verzeichnis, wenn die tools.jar da noch nicht drin ist, dann kopier sie mal da hinein. Sowas hatte ich auch schon vergessen...

Die besagte Klasse "com.sun.tools.javac.Main.class" befindet sich da drin. Danach sollte es laufen...

Gruß, CHaoSlayeR
 
Hallo!

Das tools.jar sollte man eigentlich nie den Tomcat Libs hinzufügen müssen.... bist du sicher, dass du die Version 5.0.28 und nicht 5.0.29 hast? Bei 5.0.29 gabs nämlich einen Bug der den Jasper JSP Compiler immer mit der Option Target 1.3 gestartet hat was bei einem -Source Flag von 1.5 nicht geht. Das Problem wurde mit Tomcat 5.0.30 gelöst. Versuchs mal damit. Btw. hab Tomcat 5.0.2 hier bei mir mit Java 5 im Einsatz OHNE das tools.jar zu kopieren.

Gruß Tom
 
Hallo Ihr beiden,

also ich habe definitiv die Version 5.0.28.
Und es hat soweit geklappt. Ich hab die tools.jar
ins Tomcat-Verzeichnis kopiert uns jetzt tuts
Ich bin so happy :cool:

zu Dir Thomas:
Keine Ahnung warum das jetzt geklappt hat,
aber Hauptsache es funktioniert jetzt erst mal.
(Hoffentlich bleibt das jetzt auch so *lach*)
Wie gesagt, das Ganze ist totales Neuland für mich
und ich bin jetzt erst mal froh, dass ich arbeiten kann.

Vielen, vielen Dank an Euch beide =)
 
CHaoSlayeR hat gesagt.:
Hi,

das hier: "com.sun.tools.javac.Main is not on the classpath"

...sieht mir eher danach aus, als ob die "tools.jar" aus deinem sdk ("DeinSDKPfad/lib/tools.jar") noch nicht im Tomcat bereit steht. Schau mal in das "DeinTomcatDir/common/lib"-Verzeichnis, wenn die tools.jar da noch nicht drin ist, dann kopier sie mal da hinein. Sowas hatte ich auch schon vergessen...

Die besagte Klasse "com.sun.tools.javac.Main.class" befindet sich da drin. Danach sollte es laufen...

Gruß, CHaoSlayeR

Herzlichen Dank, auf diese Lösung wäre ich ohne dich nie gekommen!
Gruss, Arnd
 
Bei mir hat "scheinbar" garnichts geholfen.

JAVA_HOME, CATALINA_HOME, PATH waren gesetzt, tools.jar im tomcat/common/lib

und dennoch der fehler.
selbst eine neue konsole starten half nicht.

daher (unter WinXP) reboot tut gut ... und siehe da - es lief.

nur noch mal als Tip!

gruß
 
Hallo!

Wenn du die Tipps soweit durchgegangen bist und deine PATH Umgebungsvariable angepasst hast, dann war ein Neustart IMHO nicht notwendig. Ich vermute mal du hast das ganze immer über die selbe Konsole ausprobiert. Die Konsolen ziehen sich die Umgebungsvariablen nur einmal beim starten der Konsole und arbeiten danach mit einer Kopie weiter. D.h. wenn man eine Konsole geöffnet hat und unter Windows die Umgebungsvariablen anpasst, merkt die geöffnete Konsole nichts davon. Startet man aus einer Konsole (cmd) mittels (start) eine neue Konsole so erbt diese neue Konsole die Umgebungsvariablen der Mutter-Konsole.

Merke: Bei Anpassung der Umgebungsvariablen außerhalb einer Konsole muß man die Konsole immer neu starten, damit die Änderungen sichtbar werden.

Gruß Tom
 

Neue Beiträge

Zurück