Search code examples
javajdbcneo4jkettle

Pentaho Kettle + Neo4j jdbc driver error: Unsupported major.minor version 51.0


I'm trying to use Pentaho Kettle 5.0.1A-stable with the Neo4j JDBC driver but when I try to preview the data of a "Table Input" step I get this error:

Failed to execute runnable (java.lang.UnsupportedClassVersionError: org/neo4j/jdbc/Driver : Unsupported major.minor version 51.0)

Screenshot:
Pentaho Kettle error when trying to preview the output of a "Table Input" step using Neo4j jdbc driver

I have these lines in my .zshrc file

export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
export PENTAHO_JAVA_HOME=`/usr/libexec/java_home -v 1.7`
  • Java version is 1.7.0_60 (I'm using Mac OS X btw)
  • I've cloned the Neo4j-driver and built it using Maven (last commit of the driver was 5430d0454180a which added support to Neo4j 2.1.2)
  • I built the driver with Maven with this command: mvn package
  • I've copied the driver neo4j-jdbc-2.1.2-SNAPSHOT-jar-with-dependencies to the /lib dir in Kettle.

Any thoughts?

They say that this error usually happens because of a higher JDK during compile time and lower JDK during runtime but I already set PENTAHO_JAVA_HOME so I'm running out of ideas here.


Solution

  • Not an answer, but maybe some insight:

    A major version of 51 corresponds to JDK 7 - that is in line with your description how you've built the Neo4j JDBC driver. Since Neo4j is based on JDK 7 and the JDBC Driver uses internally some of the Java 7 language features it is not possible to build it with a previous JDK.

    It looks like kettle is using an earlier JDK version. Unfortunately I cannot give a advice how to force a specific JDK for Kettle. You might inspect your process list using ps aux and grep for kettle to see the full command being run.