MettleCI CLI throws an 'UnsupportedClassVersionError'
Problem
When invoking the MettleCI command shell you receive the following error message:
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:
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.
Related articles
© 2015-2024 Data Migrators Pty Ltd.