Java/Maven混淆问题:“Unsupported major.minor version 51.0”

5

我正在尝试下载和安装这个Maven插件:

https://github.com/mirkonasato/graphipedia

我进入目录并运行以下命令:

mvn clean install

我今天使用Homebrew在Mac上安装了mvn,因此应该是最新版本。我遇到的错误是:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project graphipedia-dataimport: Compilation failure
[ERROR] error: Exception thrown while constructing Processor object: org/neo4j/kernel/impl/annotations/ServiceProcessor : Unsupported major.minor version 51.0

我在谷歌上搜索了这个错误,发现有几个人说可能是因为Java版本过旧。所以我检查了我的系统偏好设置,显示Java 7。

但我并不完全相信这个结果,于是我运行了

mvn --version

这是我的输出结果

Apache Maven 3.2.3 (33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4; 2014-08-11T22:58:10+02:00)
Maven home: /usr/local/Cellar/maven/3.2.3/libexec
Java version: 1.6.0_65, vendor: Apple Inc.
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Default locale: de_DE, platform encoding: MacRoman
OS name: "mac os x", version: "10.9.5", arch: "x86_64", family: "mac"

我感到困惑。为什么这里使用的是Java v. 1.6?我该如何解决这个问题呢?我只是想使用这个不错的Java应用程序。

此外,Graphipedia应用程序的pom.xml文件如下所示。我觉得这可能会有帮助。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.graphipedia</groupId>
  <artifactId>graphipedia-parent</artifactId>
  <version>0.1.0-SNAPSHOT</version>
  <packaging>pom</packaging>
  <name>Graphipedia Parent</name>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <neo4j.version>2.0.0</neo4j.version>
  </properties>

  <modules>
    <module>graphipedia-dataimport</module>
  </modules>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.codehaus.woodstox</groupId>
        <artifactId>woodstox-core-asl</artifactId>
        <version>4.1.4</version>
      </dependency>
      <dependency>
        <groupId>org.neo4j</groupId>
        <artifactId>neo4j-kernel</artifactId>
        <version>${neo4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.neo4j</groupId>
        <artifactId>neo4j-lucene-index</artifactId>
        <version>${neo4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.neo4j</groupId>
        <artifactId>neo4j-graph-algo</artifactId>
        <version>${neo4j.version}</version>
      </dependency>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.10</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
        </configuration>
      </plugin>
    </plugins>
  </build>

</project>

2
这个问题看起来很相似,可能会有所帮助。https://dev59.com/WGMk5IYBdhLWcg3w8ieC - Danny
1
https://dev59.com/Fmkv5IYBdhLWcg3wvDXq - OhadR
1个回答

4
这个错误意味着你正在尝试用早于编译代码所使用的Java安装程序的Java运行时来执行Java字节码。如果你正在使用Eclipse,请检查窗口|首选项|Java|编译器,并确保版本不是新于1.6。或者,您可以升级Maven尝试使用的Java安装程序的版本。

谢谢。我已经修复了。用户Oskar在这个回复中给出了正确的答案:http://stackoverflow.com/questions/18813828/why-maven-use-jdk-1-6-but-my-java-version-is-1-7#comment35888387_22974231 - Ole Spaarmann

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接