“org.apache.jasper.JasperException: Unable to compile class for JSP”

我也遇到了这样的问题,这样的问题主要是由于你配置的环境变量的原因所造成的我们来看一下造成这种情况的主要原因:

很明显他说:org.apache.jasper.JasperException: Unable to compile class for JSP

意思是不他不能够完成类的编绎,造成他的的原因是我没有正确配置我的vm,在这里我提前说一下我的这个项目在手动启动Tomcat的statup.bat文件的时候是没有任何问题的,出现问题的原因是我用eclipse中的Tomcat启动时出现的,从这里就可以看出确实是我的vm设置的不正确所造成的,经过的查找我发现我在编绎这个项目的时候我用的vm是1.4的(从这里可以查看【Window】->【Preferences】->【Java】->【Compiler】->【JDK Compliance level】->1.4)而在启动eclipse中的tomcat的时候他让tomcat用的vm是eclipse自身带的vm我的eclipse是5.5.1的从这里可以看出他应该是用的1.5的vm(从这里可以查看windows -> preference ->AplicationServers-> tomcat -> JDK-> Tomcate JDK name )因此部题就水落石出了,我们只要么让这两个编绎器相同就可以了。

额外补充一点就是刚才我们费的那老半天的劲就是为了一个目的让他能够用的tools.jar这个工具,困为Tomcat在工作的时候就主要是用这个工具来进行编绎的,所以你如果不用eclipse来启动tomcat的话一定要让tomcat能够找到这个文件,也就是你要在你的环境变量中设置对让你的JAVA_HOME的路径正确。(tool.jar是在你的java的lib目录下的)

我也遇到了这样的问题.

跟踪了一下, 原来是java.home指到$JAVA_HOME/jre下了.

而其lib下的tools.jar跟$JAVA_HOME/lib/tools.jar不一样,

编译jsp的时候需要用到后者.

应此需要在启动tomcat的时候让jvm知道tools.jar的位置就可以了.

注: java.home在运行的时候就会指向$JRE_HOME.

jdk 1.4.2_06-b03

jdk 1.5.0_05-b05

都会出现这种情况.

修改例子:

ant:

增加

<property environment="env" />

然后在启动tomcat的时候把<pathelement location="${java.home}/lib/tools.jar" />

改为: <pathelement location="${env.JAVA_HOME}/lib/tools.jar" />

就可以了.

eclipse:

windows -> preference -> tomcat -> jvm settings -> boot classpath 中加入你的

JAVA_HOME/lib/tools.jar就可以了.

不知道sun这样做的原因是什么.

http://www.cnblogs.com/zhengyun_ustc/archive/2005/06/14/174348.html

转自:

http://www.blogjava.net/DreamFight/articles/245154.html

http://eckellee.blog.hexun.com/3351428_d.html