解决IDEA中的operator is not allowed for source level below 1.7

12 篇文章 0 订阅
2 篇文章 0 订阅

<>operator is not allowed for source level below 1.7

不难看出报错的原因是编译版本低于1.7时,’<>’这种省略类型的泛型语法不可用。

搜索该错误,得到的答案大约为两种: 
大部分复制粘贴的答案都是在eclipse中遇见的该错误,解决方案是设置项目的java编译版本和jdk版本为1.7及以上。检查了我的idea的相关设置,都是1.8的版本没问题,该答案没有解决我的问题;
      1.在使用泛型时不要写省略语法: 
                Map<String, String> genders = new HashMap<String, String>(); 
                可是这样等于使用了老版本的java语法,并没解决根本问题
解决方法: 
这里的问题其实是本地安装的tomcat中配置的jsp编译版本是低于1.7的,而设置IDE中的编译版本并不能解决这个问题,这里需要找到本地tomcat的安装目录下的web.xml文件,路径如下:\Tomcat\Tomcat7.0\conf\web.xml,打开以后找到JspServlet的配置如下:

 

<servlet>
        <servlet-name>jsp</servlet-name>
        <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
        <init-param>
            <param-name>fork</param-name>
            <param-value>false</param-value>
        </init-param>
        <init-param>
            <param-name>xpoweredBy</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>3</load-on-startup>
    </servlet>



在其中添加jsp编译版本的设置:

<init-param>
        <param-name>compilerSourceVM</param-name>
        <param-value>1.8</param-value>
    </init-param>
    <init-param>
        <param-name>compilerTargetVM</param-name>
        <param-value>1.8</param-value>
    </init-param>


保存,OK,然后要记得在IDE中重新发布项目(注意清理缓存),在访问原来出问题的jsp页面,这次就不会报错了~

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值