1

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.

Community
  • 1
  • 1
Adolfo Abegg
  • 765
  • 7
  • 15

1 Answers1

1

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.

Stefan Armbruster
  • 39,465
  • 6
  • 87
  • 97
  • Hi Stefan, that is exactly the case. Kettle is using the Mac's JDK 1.6.0 hence the error. Thank you for the prompt response :) I'll need to find a way to get Kettle running with Java 7. – Adolfo Abegg Jun 23 '14 at 22:39
  • ok, [I've found the root of all evil](http://stackoverflow.com/a/15271448/929659) It's related to the way Java apps are bundled for Mac: this is a dead end. – Adolfo Abegg Jun 23 '14 at 23:19
  • 3
    I got Kettle running on Java 7 by executing `./spoon.command` in my case it is located in `/Applications/data-integration/spoon.command` :) – Adolfo Abegg Jun 23 '14 at 23:27