菱形运算符(<;>;)不在java 1.7中工作
编译jsp文件时出现以下错误: 源级别低于1.7时不允许使用“”运算符 我使用的是菱形运算符(<;>;)不在java 1.7中工作,java,eclipse,jsp,javac,Java,Eclipse,Jsp,Javac,编译jsp文件时出现以下错误: 源级别低于1.7时不允许使用“”运算符 我使用的是jdk1.7.x和eclipse开普勒 此外,我在Eclipse的项目首选项中将1.7设置为符合性级别,但代码仍然不起作用 我应该添加任何其他配置吗?检查Eclipse中的以下区域: 右键单击项目>属性>项目方面>Java>版本1.7 右键单击项目>属性>Java构建路径>库>JRE库应为1.7 右键单击项目>属性>Java编译器>编译器遵从性级别 窗口>首选项>服务器>运行时环境>选择服务器>编辑>确保JRE设置
jdk1.7.x
和eclipse开普勒
此外,我在Eclipse的项目首选项中将1.7设置为符合性级别
,但代码仍然不起作用
我应该添加任何其他配置吗?检查Eclipse中的以下区域:
右键单击项目>属性>项目方面>Java>版本1.7
右键单击项目>属性>Java构建路径>库>JRE库应为1.7
右键单击项目>属性>Java编译器>编译器遵从性级别
窗口>首选项>服务器>运行时环境>选择服务器>编辑>确保JRE设置为1.7
因此,现在看来唯一的方法是将应用程序服务器(例如tomcat)配置为低于1.7的jdk版本。检查系统上的java_HOME环境变量指向的java版本。如果您更正了这一点,它应该可以解决您的问题。我知道该线程自上次激活以来已经超过2年了,但如果有人正在寻找答案,而上面的检查无法解决问题:这是因为您运行的tomcat编译器的版本早于1.7。解决此问题的一种方法是将其添加到tomcat/conf/web.xml中:
<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>
<init-param> <!-- this should be added -->
<param-name>compilerSourceVM</param-name>
<param-value>1.7</param-value>
</init-param>
<init-param>
<param-name>compilerTargetVM</param-name>
<param-value>1.7</param-value>
</init-param> <!-- last added line -->
<load-on-startup>3</load-on-startup>
</servlet>
jsp
org.apache.jasper.servlet.JspServlet
叉
假的
xpoweredBy
假的
编译器资源虚拟机
1.7
编译器目标
1.7
3.
是否将1.7设置为您的运行时环境?这不称为“列表运算符”。它更像是“推断的泛型类型”。显然你没有将编译器/环境设置为1.7。我可以知道它应该设置在哪里吗?严格地说,它被称为菱形运算符,不仅适用于列表。谢谢你的回答,但它仍然不起作用。。上述所有属性都设置为1.7.0搙只是为了说明一些事情,如果将代码放在类中而不是JSP会抱怨吗?还请确保您指向正确的JDK<代码>窗口>首选项>Java>已安装的JRE。只需确保它指向安装了1.7的文件夹。使用简单类可以正常工作。。尽管我认为应用服务器运行在JRE/JDK的早期版本上,但JSP文件仍然存在问题。您的类路径上是否设置了旧版本或为java home指定了旧版本?请添加一些文本来解释此答案如何帮助OP解决当前问题,而不是将链接作为答案发布。谢谢