【问题标题】:Maven - IntelIJ - strings in switch are not supported in -source 1.6Maven - IntellIJ - -source 1.6 中不支持开关中的字符串
【发布时间】:2018-03-09 09:18:09
【问题描述】:

我正面临这个问题,终端说:

[错误] 无法在项目 FloAutomation 上执行目标 org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile):编译失败 [错误] /Users/hai/workspaces/automation-for-iPad/src/main/java/Locators/ObjectRepository.java:[19,19] 字符串在 -source 1.6 中不受支持 [错误](使用 -source 7 或更高版本在开关中启用字符串)

我检查了他们说的JAVA_HOME和java版本:

$JAVA_HOME /Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home

java版本

java -version java version "9.0.4" Java(TM) SE Runtime Environment (内部版本 9.0.4+11)Java HotSpot(TM) 64 位服务器虚拟机(内部版本 9.0.4+11, 混合模式)

我还检查了项目的语言级别,它是 9.0.4

你能给我一些解决这个问题的方法吗? 谢谢,

【问题讨论】:

  • 您是否在 pom.xml 中的编译器插件中指定了源版本和目标版本?
  • @ErnestKiwele,是的,我做到了,我为源和目标设置了 1.6
  • 如果你设置的是 1.6 当然你不能使用 java 7 的特性。将其更改为 1.7 或更高版本

标签: java maven appium


【解决方案1】:

添加到你的pom.xml,然后刷新maven:

<project>
  [...]
  <properties>
    <maven.compiler.source>1.9</maven.compiler.source>
    <maven.compiler.target>1.9</maven.compiler.target>
  </properties>
  [...]
</project>

由于您使用的是 Java 9,因此该值应为 1.9 或如错误所示:1.7 或更高版本。

【讨论】:

    【解决方案2】:

    String-typed switch 表达式的支持仅在 Java 7 中添加。因此您需要设置的最小值为 1.7

    查看this doc page了解更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-10
      • 1970-01-01
      • 1970-01-01
      • 2011-09-24
      相关资源
      最近更新 更多