Skip to main content
Skip table of contents

MettleCI CLI throws an 'UnsupportedClassVersionError'

Problem

When invoking the MettleCI command shell you receive the following error message:

JAVA
C:\Users\Developer>mettleci.cmd
Exception in thread "main" java.lang.UnsupportedClassVersionError: JVMCFRE003 bad major version; class=com/datamigrators/mettle/shell/MainClass, offset=6
        at java.lang.ClassLoader.defineClassImpl(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:331)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:155)
        etc.

… or you see this in the Workbench mci.log file:

JAVA
Exception in thread "main" java.lang.UnsupportedClassVersionError: JVMCFRE003 bad major version; class=com/datamigrators/mettle/MettleApplication, offset=6
	at java.lang.ClassLoader.defineClassImpl(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:331)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:155)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:714)
	etc.

Solution

This error is unavoidably produced when you invoke the MettleCI Command Line, or attempt to start the Workbench service, in an environment which is not running Java v1.8 or greater. In particular, the MettleCI Command Line cannot work with the IBM-specific version of Java typically shipped with DataStage. To confirm this is the issue login to the relevant host as the mciworkb user and run java -version to verify the java version.

To resolve this error please ensure you follow the first step in the Command Line installation guide which requests you to install a more recent version of Java.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.