<html>
<body>
<%
String books[] = {"terry","essen","charles"};
for(String book:books){
out.write(book); } %>
</body>
</html>这就是一个最简单的JSP文件,但是非常奇怪,tomcat竟然无法编译,tomcat可以把这个JSP文件翻译成.java文件,但是把.java文件编译成字节码文件时出错,现在可以确定是无法来识别for(String book:books)的新特性,但是我感觉很不理解,为什么?
我的JDK版本是1.5,我写的servlet里用for(String book:books)自已翻译也没有任何问题,为什么JSP就无法使用新特性呢?麻烦大家帮下忙了

解决方案 »

  1.   

    你电脑里是不是有两个以上的JDK?检查一下环境变量里JAVA_HOME指向的JDK是不是1.5版本以上的
      

  2.   

    检查下tomcat的jdk,有时候他用自带的版本低
      

  3.   

    tomcat自带JDK吗?我用JAVA_HOME指向的是5.0版本的JDK
      

  4.   

    tomcat把JSP文件转换为servlet文件,然后用javac来编译吧,这个javac用的哪里的javac,是JAVA_HOME指向的jdk里的javac吗?
      

  5.   

           JDK的编译出错了!!! 应该换更高版本的JDK.
      

  6.   

    把生成的 *.java 的文件放到 Eclipse 中查看下。
    把错误的 for each 该为 1.5的环境
      

  7.   

    装tomecat的时候 有一步是选择指向的JDK,不知道你是不是指向的1.5,如果低于这个版本 就没有新特性 也就不支持这段代码了
      

  8.   

               安装tomcat的时候,会有一个地方选择jdk,你是不是那时候选择的低版本的jdk,后来才装的1.5版本
      

  9.   

    是这么个流程:
    1 你开发阶段用的jdk是1.5的版本,所以编译的很好,你就不会发现什么错误。
    2 你把你的工程交给tomcat去部署,交给tomcat的时候是一个jsp文件(对于页面来说),tomcat先把这个文件解析成java文件,其实这一步没有错。
    3 tomcat要把解析到的java文件编译成class文件,这里tomcat会用自己的jdk去编译,结果发现自己的jdk是1.4(或者更低的),他就不会解析for循环1.5里面的特性了!所以报错了!
    总的来说:你用Eclips开发用的jdk和你运行web工程用的jdk不是一个,所以导致了这个问题!
    好多时候,我们开发的项目在实验室测试的很好,拿到了现场就跑不起来,也是应为现场的WebServer的jdk版本太低的原因
      

  10.   

    你的jdk要是1.5以上的版本才可以
      

  11.   

    1.安装Tomcat:
    在安装前需先安装jdk,在安装时需指定jdk的安装目录
    环境变量path:jdk\bin javac.exe目录JAVA_HOME:jdk安装目录TOMCAT_HOME:tomcat安装路径classpath:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%TOMCAT_HOME%\common\lib (java类加载路径)2.与MyEclipse工具一起使用:(配置)
    观看视屏文件配置TomcatV1.0.swf
    3.在快捷键第一行第9列加入项目-10列开启服务-11列用浏览器打开4.tomcat的用法
    (1)手动发布项目
    把项目copy到comcat安装目录webapps目录下面
    (2)手动开启服务 与 关闭
     在bin目录下面执行批处理文件startup.bat 与 shutdown.bat(或者执行catalina.bat文件)
    (3)手动修改端口号
     在conf目录下面修改server.xml文件里面的<Connector 
    port="8080"               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                   enableLookups="false" redirectPort="8443" acceptCount="100"
                   debug="0" connectionTimeout="20000" 
                   disableUploadTimeout="true" />  8080为端口号直接修改保存即可5.常报的错误号。
    500 应用程序出错
    404 找不到文件
    403 不许访问6.在dos下错误一闪而过可以这样查看错误结果:
    先执行: catalina.bat
    然后执行: run7.安装纯净的eclipse,需要安装tomcat,lomboz与emf插件
    分别解压到eclipse的安装目录
      

  12.   

    是这么个流程: 
    1 你开发阶段用的jdk是1.5的版本,所以编译的很好,你就不会发现什么错误。 
    2 你把你的工程交给tomcat去部署,交给tomcat的时候是一个jsp文件(对于页面来说),tomcat先把这个文件解析成java文件,其实这一步没有错。 
    3 tomcat要把解析到的java文件编译成class文件,这里tomcat会用自己的jdk去编译,结果发现自己的jdk是1.4(或者更低的),他就不会解析for循环1.5里面的特性了!所以报错了! 
    总的来说:你用Eclips开发用的jdk和你运行web工程用的jdk不是一个,所以导致了这个问题! 
    好多时候,我们开发的项目在实验室测试的很好,拿到了现场就跑不起来,也是应为现场的WebServer的jdk版本太低的原因嗯,就是这原因
    我不理解,tomcat自身就带有某一版本的JDK和JRE吗,在哪里可以看出来?既然如此那么为什么在安装tomcat之前还必须要安装JDK呢?
      

  13.   

    认真检查下,不行就换JDK1.6了!!