【问题标题】:String value in Java 1.7 switch statement throwing an error?Java 1.7 switch 语句中的字符串值抛出错误?
【发布时间】:2016-07-24 13:08:04
【问题描述】:

任何人都知道这个错误在说什么:

jsp文件/historical_weather.jsp中的第388行发生错误

无法为低于 1.7 的源级别打开字符串类型的值。只允许可转换的 int 值或枚举变量

我正在使用Java 7.0。我仍然收到此错误。 谢谢

【问题讨论】:

  • 您可能安装了 Java 7,但项目正在使用该库吗?
  • 是的,Matthew,该项目使用的是相同的 jdk 1.7
  • 您可能正在使用 Java 7,但您也在使用 -source 1.6 或更低版本。
  • 你在用jspc Maven plugin吗?

标签: java jsp tomcat7


【解决方案1】:

这可能是因为您使用的是 Tomcat-7 或更低版本。

Tomcat-7 使用源代码级别为 1.6 来编译 JSP Ref。要解决此问题,您可以使用 Tomcat-8,因为 Tomcat-8 使用 JSP 的源代码级别为 1.7。

如果您想使用 Tomcat-7,另一种解决方案是在 Tomcat-7 中将源级别更改为 1.7,为此您必须在 [TOMCAT_HOME]/conf/web 中为 servlet jsp 添加以下条目。 xml:

<init-param>
    <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>

更多详情:how-to-set-tomcat-7-source-level-to.html

注意:我说的只是 Tomcat 为其生成 Java 代码并编译它们的 JSP。对于其他 Java 类,源级别将与您的 JDK 版本相同。

【讨论】:

  • 我使用的是 java 7,并且我将编译器级别设置为 1.7。虽然我有这个问题。但我的问题就是这种情况。在我更改了我的 tomcat 配置后,它起作用了。谢谢。注意:根据答案中的链接,我们必须修改这个jsp servlet: jsp only in tomcats web.xml .
【解决方案2】:

检查您的项目属性(无论安装了何种 JDK,您始终可以在每个 IDE 上设置较低的编译级别)或您的 Maven 构建配置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-26
    • 1970-01-01
    • 2018-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多